摘要: "题目链接" 显然有贪心每次选择最大的两个数来做。 于是暴力地把最大的两个数调整到非负(暴力次数不超过1e5),接下来使用矩阵乘法即可。 $$ \begin{pmatrix} B'\\S'\\T' \end{pmatrix} = \begin{pmatrix} 1&1&0\\ 1&0&0\\ 1&1 阅读全文
posted @ 2019-06-17 22:35 nosta 阅读(208) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 矩阵加速裸题。注意G(x+1)=G(x) A。 cpp // luogu judger enable o2 include define ll long long using namespace std; const int N=5e2+5; const int inf=0x3f3f3 阅读全文
posted @ 2019-06-17 15:50 nosta 阅读(118) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 不妨设$n\le m$ $$ \begin{aligned} ans&=\sum_{i=1}^n\sum_{j=1}^m\varphi(ij)\\ &=\sum_{i=1}^n\sum_{j=1}^m\frac{\varphi(i)\varphi(j)\gcd(i,j)}{\varph 阅读全文
posted @ 2019-06-17 10:49 nosta 阅读(418) 评论(0) 推荐(0) 编辑
摘要: 先要推式子 $$ \begin{aligned} \varphi(x)\varphi(y)&=(x\prod_{p|x}\frac{p 1}p)(y\prod_{p|y}\frac{p 1}p)\\ &=(\prod_{p|xy}\frac{p 1}p)(\prod_{p|\gcd(x,y)}\fr 阅读全文
posted @ 2019-06-16 22:15 nosta 阅读(216) 评论(0) 推荐(0) 编辑
摘要: "TheLostWeak" ~~讲解得十分清楚,就不造轮子了~~ cpp include define ll long long define ls (x L[N]; int val[N 1; build(ls,l,mid); build(rs,mid+1,r); val[x]=min(val[ls 阅读全文
posted @ 2019-06-16 17:38 nosta 阅读(158) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 容斥+隔板法+Lucas定理 cpp include using namespace std; const int N=1e5+10; int n,m,t,mod,ans; int fc[N],fv[N],b[15]; int lucas(int n,int m) { if(mn) r 阅读全文
posted @ 2019-06-15 17:32 nosta 阅读(141) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 显然一定存在最优解满足编号小的节点深度越深,即从小到大的优先选择(叶节点|除自己以外子树节点都已经被标号)的节点标号(影响最小),存在取法(顺序)得到最优解。 因此考虑对叶节点状压,转移过程中需要计算出当前已经被直接或间接地确定的节点的数量c作为下一个叶节点的编号。复杂度O((n+n) 阅读全文
posted @ 2019-06-15 13:22 nosta 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 关于匹配串T在模式串中出现的位置不一定按顺序……只需要保证位置差不过k。 于是……FFT板题 阅读全文
posted @ 2019-06-15 10:11 nosta 阅读(213) 评论(0) 推荐(0) 编辑
摘要: ~~治好了我的树上莫队/带修莫队恐惧症……~~ 对树的分块要求块内的元素都联通,可以参考[SCOI 2005]王室联邦的分块做法。对于路径的修改,若已经存在x y的路径,要转化到X Y的路径(此处所言路径不包含两点的lca),可以发现路径X Y等于路径x y、路径X x、路径Y y这三者的对称差(异 阅读全文
posted @ 2019-06-14 11:03 nosta 阅读(371) 评论(0) 推荐(0) 编辑
摘要: 设a[i,j]=0/1表示格子的颜色,由题意,f(i,j)=a[i,j]^a[i+1,j]^a[i,j+1]^a[i+1,j+1]=1。 对于约束a[x,y]=c(x 1,y 1), ^^f(i,j)(11,y 1)这样的约束……可以和假设的a[1,1]绑定…… 再对于a[1,1]=c这样的……就没 阅读全文
posted @ 2019-06-12 07:57 nosta 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 由Lucas定理,C(n,m)%P=C(n%p,m%p) C(n/p,m/p)可知C(n,m)为奇数的充要条件是(n&m)=m。 考虑到ai using namespace std; const int N=233335; const int mod=1000000007; int n,a[N],p 阅读全文
posted @ 2019-06-10 23:13 nosta 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 倍长数组$T$。 若从$x$出发,依次标记完所有物品的代价为$n 1+\max_{i=x}^{x+n 1}\{T_i (i x)\}$,如果某个物品$y$被跳过一次才取到,则取到$y$时的增加的代价/固有时间$n$,而减少的代价/等待时间却不会超过$n$,因为$y$在绕一周之后能够被标记到,总不会减 阅读全文
posted @ 2019-06-10 21:34 nosta 阅读(255) 评论(0) 推荐(0) 编辑
摘要: 树上路径带修第k大问题,没有强制在线。 ~~主体~~思想:l[x]为点x的dfs序,r[x]为子树x中最后一个节点的dfs序,sum[i]为dfs序为1~i的节点的某种和,d为x,y的lca,则路径x~y的和=sum[l[x]]+sum[l[y]] sum[l[d]] sum[l[fa[d]]]。单 阅读全文
posted @ 2019-06-10 17:28 nosta 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 显然,随机产生的n个节点二叉树共有n!中结构,且出现每种结构的概率相同,因此之需求所有方案的不方便度之和即可。 让边的编号为儿子节点的编号。考虑边i(i∈[2,n])在所有情况下产生的贡献?( 很重要的方法 ) 枚举点i的子树大小t(t∈[1,n i+1]),对应的每张方案边i都有t(n t)的贡献 阅读全文
posted @ 2019-06-10 14:07 nosta 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 用并查集合并相同的点,答案为9 10^{并查集的块数 1}。 由“区间对区间的”可以联想到线段树优化之类的方法,换成倍增会更简单~ ~~~cpp include define ll long long using namespace std; const int N=1e5+10; const in 阅读全文
posted @ 2019-06-10 12:40 nosta 阅读(117) 评论(0) 推荐(0) 编辑