摘要:
对最终答案取对数,得到$\ln(Ans)=\frac{1}{c}\sum \ln(v_i)$,典型的分数规划问题。二分答案后,对所有咒语串建立AC自动机,然后套路地$f[i][j]$表示走到T的第i个字符,当前在自动机的第j个位置,能得到的最大收益。注意二分的r初始不能设太大,25就可以了,二分终止 阅读全文
摘要:
A.最长不会超过a的个数的两倍-1。 1 #include<cstdio> 2 #include<cstring> 3 #include<iostream> 4 #include<algorithm> 5 #define rep(i,l,r) for (int i=(l); i<=(r); i++) 阅读全文
摘要:
经典问题(以下全部默认$n\leqslant m$):$\sum\limits_{i=1}^n\sum\limits_{j=1}^{m}gcd(i,j)=\sum_{d=1}^n\varphi(d)\lfloor\frac{n}{d}\rfloor\lfloor\frac{m}{d}\rfloor$ 阅读全文
摘要:
A.奇数配偶数。 1 #include<cstdio> 2 #include<cstring> 3 #include<iostream> 4 #include<algorithm> 5 #define rep(i,l,r) for (int i=(l); i<=(r); i++) 6 typedef 阅读全文
摘要:
A.若存在解则一定存在某个i使得a[i]>a[i+1],翻转它即可。 1 #include<cstdio> 2 #include<cstring> 3 #include<iostream> 4 #include<algorithm> 5 #define rep(i,l,r) for (int i=( 阅读全文
摘要:
A.一定是前半段白后半段黑,枚举分界点预处理前后缀和。 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #include<iostream> 5 #define rep(i,l,r) for (int i=(l); i<= 阅读全文
摘要:
A.直接判。 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #include<iostream> 5 #define rep(i,l,r) for (int i=(l); i<=(r); i++) 6 typedef l 阅读全文
摘要:
二进制分组思想很简单,就是把下标拆成几个2的次幂的和,对每个2的次幂维护答案,复杂度是暴力重构一组的复杂度乘log(如果可以归并可能会少个log)。 这里其实想整理下一些修改独立的数据结构题的套路。 离线算法: (1) 只有插入:CDQ分治。 (2) 有删除: 支持删除操作:CDQ分治。 不支持删除 阅读全文
摘要:
D1T1:与或和 对每位处理,问题变成所有内部不包含0/1的矩阵的个数,单调栈维护即可。 1 #include<cstdio> 2 #include<algorithm> 3 #include<cstring> 4 #define rep(i,l,r) for (int i=(l); i<=(r); 阅读全文
摘要:
A.(c1=0&&c3>0)||(c1!=c4) 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #include<iostream> 5 #define rep(i,l,r) for (int i=(l); i<=(r) 阅读全文