- 博客(33)
- 收藏
- 关注
转载 杜教筛之逆运算
前言:下面介绍的这种方法并不常见,但是非常的有用准确来说,我是来拓荒的,所以有什么问题请一定指出前置技能:积性函数狄利克雷卷积一定式子转化能力其实对杜教筛知识点方面要求并不是很高简单介绍几种常用积性函数:\(1.\text{欧拉函数:}\phi(x)=\text{ 1—x与x互质的数的个数}\)\(2.\text{莫比乌斯函数:}\mu(x)\text{ 这个函数定义...
2019-09-02 11:50:00 179
转载 杜教筛之逆运算2
有了杜教筛的式子我们可以干很多事\[\sum_{i=1}^nf*g(i)=\sum_{i=1}^nf(i)\sum_{j=1}^{\lfloor\frac{n}{i}\rfloor}g(j)\]对于这种两种形式的式子可以用杜教筛式子秒杀\[1.\sum_{i=1}^n\lfloor\frac{n}{i}\rfloor f(i)\\2.\sum_{i=1}^n\lfloor\fr...
2019-08-31 21:39:00 146
转载 欧拉心算
传送门解法:\[\begin{align}\sum_{i=1}^n\sum_{j=1}^n\phi(gcd(i,j))&=\sum_{d=1}\phi(d)\sum_{i=1}^n\sum_{j=1}^n[d==gcd(i,j)]\\&=\sum_{d=1}^n\phi(d)\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum_{...
2019-08-31 19:34:00 371
转载 树套树-权值线段树套区间线段树
树套树留坑线段树套线段树:K大数查询#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<vector>#include<cmath>#include<map>#include<...
2019-08-28 14:12:00 252
转载 树套树-线段树套平衡树
树套树留坑线段树套平衡树:二逼平衡树#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<vector>#include<cmath>#include<map>#include<...
2019-08-24 00:29:00 125
转载 Link Cut Tree
Link Cut Tree留坑LCT:LCT模板#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<vector>#include<cmath>#include<map>#incl...
2019-08-20 17:26:00 101
转载 可持久化线段树(主席树)
主席树留坑可持久化权值线段树:区间第k小数#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<vector>#include<cmath>#include<map>#include...
2019-08-19 21:29:00 135
转载 带输入值的莫反解法
8.16杭二的莫反题没有推出来求\(\sum_{i=1}^n\sum_{j=1}^nlcm(a_i,a_j)\)解法:同机房奆佬非出题人解法 不过吊打出题人\[\begin{align}&\sum_{i=1}^n\sum_{j=1}^nlcm(a_i,a_j)\\&=\sum_{i=1}^n\sum_{j=1}^n\frac{a_i\times a_j}{gc...
2019-08-16 15:59:00 245
转载 平衡树splay
splay平衡树实现 留坑spaly权值平衡树:普通平衡树#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<vector>#include<cmath>#include<map>...
2019-08-15 22:04:00 146
转载 莫队
莫队的坑等有时间再填普通莫队:小z的袜子#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<vector>#include<cmath>#include<queue>#includ...
2019-08-12 16:38:00 101
转载 笔记
此笔记开始记录时间为2019.7.20主要供自己深化知识点一、Floyd算法:流程(重点理解):通常我们写的Floyd算法框架是这样的for(int k=1;k<=n;++k) for(int i=1;i<=n;++i) for(int j=1;j<=n;++j) d[i][j]=min(d[i][j],d[i]...
2019-07-20 23:36:00 98
转载 天天爱跑步
传送门终于拿下NOIP最难一题看别人的题解看不懂于是准备写一篇更通俗易懂杂乱无章的题解解法:树上差分+线段树(桶)+LCA将每条路径在LCA处切成上升路径和下降路径会发现对于x号观察员若观察到玩家i则必有dep[i]=w[x]+depx或dep[i]-2*dep[lca]=w[x]-depx我们用桶标记(桶用动态开点线段树实现)具体实现:用两种线段树统计 第一...
2019-07-11 13:55:00 103
转载 树剖模板
树剖要多打代码:#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<vector>#include<cmath>#include<queue>#include<map>...
2019-07-08 15:55:00 169
转载 运输计划
传送门解法:首先要学会求 树的最近公共祖先(LCA)没用树剖用了一个经常可以代替树剖的方法树上差分 这个方法很优秀 一定要掌握首先 有了lca 就可以求树上两点间长度设 \(d[x]\) 为 \(x\) 到 根节点 的距离则 \(u\),\(v\) 间距离为 \(d[u]+d[v]-2*d[lca(u,v)]\)同时可以实现差分设 \(ver[x]\) 为 \(x\)...
2019-07-01 20:56:00 105
转载 子串
传送门解法:(下面运用到了这个数据 aabaab aab)虽然是字符串但是发现就算是数字也是一样的看上去像是字符串匹配 但是只是看上去这题做法考虑dp设dp[i][j][k]表示到A中i位置时匹配到B中j位置分成k段得到的方案数(此时A[i]不要求等于B[j])我们发现第一种转移不需要考虑可否连起来算一段即可以把aab分为a a b三段直接在dp中操作即可但是第二...
2019-06-30 19:56:00 171
转载 跳石头
传送门解法:常用套路 二分答案二分 “最后得到的最短长度的最大值”再贪心地求此时需要拿走至少几个石头这个贪心策略很简单从起点开始取把距离该点长度小于此时最短长度的点都删除 累加起来最后就得到了此时最少拿走的石头数量注意:因为终点不可删 所以取到终点前的一段长度要直接累加进答案代码:#include<iostream>#include<cstdio...
2019-06-29 20:26:00 149
转载 逛公园
传送门解法:先不考虑0环很容易想到dp状态转移方程也很容易想到设\(d[i]\)为n到i的最短路长度 当然此时是反向图反向图是为了防止1能到达的点到达不了n而出错\(dp[i][j]\)表示到达i点距离为\(d[i]+j\)的路径个数则x->y有路径 \(dp[x][k]=dp[y][k-(d[y]+edge(x,y)-d[x])]\ (0\le d[y]+ed...
2019-06-22 13:28:00 185
转载 重建道路
传送门这道题对我算是意义非凡毕竟这是我独立自主AC的第一道动规较难题解法:这道题想想就想到了树上背包于是我 爽快地温习了一下树上背包 爽快地写完代码 爽快地得了72分。。。然后我才发现这道题tm的不是考树上背包而是考特判先说说背包咋写设dp[i][j]表示第i个节点的位置删掉j个点需要次数 这个设法有点神奇。。。因为要删n-p个点 为了方便 我把读入的p赋为n-p...
2019-06-18 21:47:00 110
转载 尼克的任务
传送门先喷一波出题人“第P+T-1分钟结束”应该改为“第P+T-1分钟末结束”还有工作时间是在 第N分钟末 结束不然这题样例都是错的解法:考虑dp因为要优先选先来的任务所以正着搜有后效性于是考虑倒着搜设dp[i]为第i分钟初到第n分钟末最多可以休息的时间则用任务时间作为转移条件若第i分钟有任务开始则 dp[i]=dp[i+len[j]] (len表示任务时间,j...
2019-06-18 19:26:00 120
转载 环状最大两段子段和
传送门题意:简单说就是给个序列求和最大的两段且序列头可接尾解法:若不考虑环则可对每一个位置分成其前一段和其后一段求其前一段与后一段的最大最段和相加找到最大的值在考虑环的情况可以把原问题转化为求中间最小的两段再用序列全部的和 减去 最小的两段为了偷懒直接将序列所有数取相反数然后按照第一种做法做当然序列中只有一个正数和无正数时这么做就错了因为求出来的值需...
2019-06-17 22:09:00 217
转载 列队
传送门解法:a11a12a13a21a22a23a31a32a33我们发现移走一个点只会影响该点所在行以及最后一列所以很容易能想到维护每一行以及最后一列每次删两个点,加两个点并用动态开点线段树维护删点方法:对线段树中每个节点处理子节点个数记作sz[k]递归找到要删的节点(设在线段树中位置为k)使k位置及k位置所有父节点的s...
2019-06-08 15:24:00 146
转载 奶酪
传送门解法:我们可以通过枚举判断点与点以及上下表面是否联通并存入并查集最后判断上下表面是否在同一集合中代码:#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<vector>#include<cm...
2019-06-07 13:30:00 165
转载 数字游戏
传送门解法:此题能很容易想到用区间dp求因为要最大值与最小值所以设两个数组maxn[i][j][t],minn[i][j][t]分别表示 位置i到位置j的数 分成t份和的乘积最大值、最小值那么t=1为边界 此时maxn[i][j][1]=minn[i][j][1]=a[i]+a[i+1]+…+a[j]t>=2时 maxn[i][j][t]=max{maxn[i][k...
2019-06-06 14:33:00 128
转载 小凯的疑惑
传送门题意:给定a,b且a,b互质求\(ax+by(x,y\ \epsilon\ N)\)不能表示的最大数解法:说实话,这道题挺chao简ji单nan……设a<b答案为x若\(x\equiv ma\ (mod\ b)\ (0\le m<b)\)则\(x=ma+nb\ (0\le m<b)\)若\(n\ge 0\)则x可以用a,b表示所以x不能用a,b...
2019-05-28 19:50:00 106
转载 跳房子
传送门其实这道题只要想清楚dp循环变量的意义以及dp所求的值就非常简单了解法:设\(i\)点获得的分为\(S_i\)先来考虑一个方面的问题若我们知道\(g\) 即机器人性能的改变值怎么求获得的最多的分可以想到\(dp\)设\(dp[i]\)表示到i点为止可以获得的最大分状态转移方程即为 \(dp[i]=max_{j=0->i-1}\{dp[j]\}+S_i\...
2019-05-27 22:26:00 106
转载 棋盘
传送门此题为2017普及组T3思路较为简单,一个广搜就足够了但是写什么一定要清楚别像我一样不小心加上这句话调了半年temp[x][y]=0;代码:#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<cmath...
2019-05-27 14:18:00 158
转载 树网的核
传送门1 noip版传送门2 加强版当年\(O(n^3)\)算法即可过但是AC不是我们的做题的唯一目标,我们做题应是为了取得经验。于是我们直接讨论\(O(n)\)算法题意:其实这道题我们完全不需要知道树网的核是什么东西简单讲,就是在直径上取一条长度 < S 的路径使最远的点到这条路径的距离最小求这个最小值解法:显然要先求出直径并记录这条路径(可用前驱节点)...
2019-05-24 21:53:00 106
转载 国王游戏
传送门又是一道木有看题解就想出来的题题意:简而言之一堆数求排列使这些数经过操作后最大值最小解法:注意:根据题意每个数都有两个数a,b,这里为了方便记作一个数我们贪心的只考虑第n个数由于是乘积所以第n个数确定时前n-1个数a的乘积就是确定的所以可以先求出前n个数a的乘积mul则我们现在需要确定第n个数的值第n个数的值 即为前n个数a的乘积mul除以第n个数...
2019-05-24 09:48:00 125
转载 借教室
传送门这道题我想到2种解法:线段树法 O(\(m\log n\))差分法 O(\(n+m\))先说较简单的线段树法维护一个最小值线段树每次操作对一段区间减去一个数看第几次操作全部数中的最小值<0代码:#include<iostream>#include<cstdio>#include<algorithm>#includ...
2019-05-23 21:49:00 104
转载 莫比乌斯反演式子变形
1:\(\sum_{d|gcd}f(d)=\sum_{d=1}f(d)[d|gcd(i,j)]\)(这个显然吧。。。)2:\(\sum_{i=1}^{n}\sum_{j=1}^{m}\sum_{d=1}f(d)[d|gcd(i,j)]=\sum_{d=1}f(d)\sum_{i=1}^{n}\sum_{j=1}^{m}[d|gcd(i,j)]\)3:\(\sum_{i=1}^{n}...
2019-05-23 11:43:00 220
转载 杜教筛之逆运算1
\[\sum^n_{i=1}\lfloor\frac{n}{i}\rfloor f(i)=\sum^n_{i=1}I*f(i)\]证明:设\[F(x)=\sum^x_{i=1}\lfloor\frac{x}{i}\rfloor f(i)\]则\[F(x)-F(x-1)=\sum^x_{i=1}\lfloor\frac{x}{i}\rfloor f(i)-\sum^{x-1}_{i...
2019-05-23 11:43:00 119
转载 2^k进制数
传送门题意:设 r 是个 \(2^k\) 进制数,并满足以下条件:(1)r 至少是个 2 位的 \(2^k\) 进制数。(2)作为 \(2^k\) 进制数,除最后一位外, r 的每一位严格小于它右边相邻的那一位。(3)将 r 转换为 2 进制数 q 后,则 q 的总位数不超过 w 。在这里,正整数 k ( 1 ≤ k ≤ 9 )和 w ( k < w ≤ 30000 )...
2019-05-23 11:39:00 237
转载 快速乘
ll mul(ll a,ll b,ll p){ if(a>1e9||b>1e9){ ll x = 1LL<<25; ll L = a * (b >> 25LL) % p * x % p; ll R = a * (b & (x - 1)) % p; retu...
2019-05-06 21:24:00 69
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人