摘要: #include <bits/stdc++.h> using namespace std; const int maxN=11000000+10; char s[maxN],ss[maxN<<1]; int R[maxN<<1]; int manacher(char *S,int Len) { in 阅读全文
posted @ 2020-10-10 21:14 darkroome 阅读(49) 评论(0) 推荐(0) 编辑
摘要: 区间dp #include <bits/stdc++.h> using namespace std; const int maxN=100+10; int A[maxN],dp[maxN][maxN]; int T,P,Q; int main() { scanf("%d",&T); for(int 阅读全文
posted @ 2020-10-08 12:16 darkroome 阅读(58) 评论(0) 推荐(0) 编辑
摘要: 随处可见的主席树题目吧 题意大一体上就是询问各个版本的区间最大值,修改一个数产生一个新的版本 cpp include using namespace std; templateinline T readin(T&rt) { char c; T tmp=0,x=1; c=getchar(); whil 阅读全文
posted @ 2018-07-03 23:19 darkroome 阅读(149) 评论(0) 推荐(0) 编辑
摘要: "629D" 普及组dp 2 有$n$个蛋糕,每个蛋糕有一定体积(是圆柱体)。能把一个$j$蛋糕放在另一个$i$上面的充要条件是$i using namespace std; typedef long long ll; template inline T readin(T &rt) { char c 阅读全文
posted @ 2018-07-02 17:41 darkroome 阅读(175) 评论(0) 推荐(0) 编辑
摘要: "bzoj4802" 求$10^{18}$级别的数的欧拉函数。 pollardrho算法分解大数质因数即可。(主要是存模板) cpp include using namespace std; typedef long long ll; ll sed=20170831,mo=LLONG_MAX,rt= 阅读全文
posted @ 2018-06-23 20:25 darkroome 阅读(293) 评论(0) 推荐(0) 编辑
摘要: "455A" 普及组dp题居然不会了,要尽快回到状态才行。 题意就是给定一个序列,然后玩家每次选择一个数并得该数值的分,并且选了$a_i$以后,值为$a_{i} 1$和$a_{i}+1$都不能选了。要求最大化得分。 这样的dp,和值域有关。考虑将值域作为状态。 设$dp(i,1)$为$[1,i]$的 阅读全文
posted @ 2018-06-23 20:21 darkroome 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 随机的素性判定算法,但判定次数更多正确率越大。 1.前置知识: 费马小定理 $a^{p 1}\equiv 1 \mod p$,p为任意质数,a为任意整数 并且逆否命题成立,即:对于任意整数$a =1; } return ret; } ll QuickPow(ll x,ll k,ll mo) { ll 阅读全文
posted @ 2018-06-21 18:24 darkroome 阅读(122) 评论(0) 推荐(0) 编辑
摘要: "990G" 给你一棵树,问你有多少个点对(x,y)(x$\leq$y),使得(x,y)简单路径上的点权值的$gcd$为$i$,对于$i\in [1,200000]$输出点对数目。 这题没有做出来,主要还是莫比乌斯反演时间太长不熟悉了。同时统计点对的技巧也自己没有想出来,实在是不应该。 我们设$h( 阅读全文
posted @ 2018-06-19 23:17 darkroome 阅读(202) 评论(0) 推荐(0) 编辑
摘要: "51F" 题意:给一个图,要求你不断合并两点,使得图变为一棵树,形态是有一条主链,其余的点到这条主链的距离最大为1并且只有一条边与其连接。 首先把双联通分量缩点,因为只能一条边与主链连接,容易发现一个大小为$x$的双联通分量需要$x 1$次缩点。这样完了以后得到一个森林。 然后就对于这个森林里的每 阅读全文
posted @ 2018-06-19 15:23 darkroome 阅读(83) 评论(0) 推荐(0) 编辑
摘要: "hdu6031" 一棵树(根节点是 1),给出两个集合,集合是 由树上的节点组成的。从两个集合中分别选一个元素,求出他们的 lca,问:lca 的深度最大是多少。 每个询问,两个集合,建虚树,然后dfs一遍,记录子树有没有A点、有没有B点,然后看既有A点又有B点的就更新深度到答案。 cpp inc 阅读全文
posted @ 2018-06-19 14:50 darkroome 阅读(94) 评论(0) 推荐(0) 编辑