摘要: 题目链接 观察到d<=8,考虑对每个x用a/b/c代替,枚举的复杂度$O(3^n),O_{\max}=3561$ 此时就基本上变成一个裸2-sat了,注意一些小细节 为什么是2-Sat了,因为比如a,b,c三种车子你限制不能用b了那a,c就相当于2-Sat中的真假两种状态了,这时我们暂且称b=$\n 阅读全文
posted @ 2021-09-15 17:28 pengyule 阅读(26) 评论(0) 推荐(0) 编辑
摘要: https://blog.csdn.net/a_forever_dream/article/details/105581221 二分权值增量可正可负,考虑有限制的物品权值加上增量的最优解,算了多少个有限制的物品再据此调整左右端点 国家集训队treeI https://www.luogu.com.cn 阅读全文
posted @ 2021-09-15 17:14 pengyule 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 求x…-x…的最大值:统一成<=求最短路 求x…-x…的最小值:统一成>=求最长路 询问是否有解:统一成<=判断是否有负环 首先都要建超级原点,连边从减数到被减数。所有题目回到上面的分类,注意求所有元素和的最大/小值等价于求节点到超级远点的和最大/小值 阅读全文
posted @ 2021-09-10 16:14 pengyule 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 这里有交题地址(筛法求欧函)link 单次 $$\varphi(n)=n\prod_{p|n}(1-\frac{1}{p})$$ p不重复取 int phi(int n){ if(n==1)return 1; int ret=n,nn=n; for(int i=2;i*i<=nn;i++)if(nn 阅读全文
posted @ 2021-09-10 15:43 pengyule 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 树链剖分的功能:解决树上路径上的点权统一修改、查询的问题 树剖的思想:将树边分为重边&轻边,x的儿子中,如果以儿子y为根的子树是所有儿子子树中节点数最多的那称y是x的重儿子(如果有多个,任选一个),边x-y为重边,边x-其他儿子为轻边;由连续的重边组成的链称为重链,不在重链上的点每个点自身是一条重链 阅读全文
posted @ 2021-09-06 14:34 pengyule 阅读(42) 评论(0) 推荐(0) 编辑
摘要: 2-SAT 算法用于解决给定 n 个元素可0可1,及m个限制:“x为1/0或者y为1/0”。SAT=satisfication简称,2表示“”内的只有两个选择。目前证明(>2)-SAT是NP问题,但2-SAT有O(m)算法 考虑建图,每个点有x,x',表示x=1,0。考虑限制->连边,以“i为0或j 阅读全文
posted @ 2021-09-03 16:36 pengyule 阅读(72) 评论(0) 推荐(0) 编辑
摘要: 前置知识 计数排序 基数排序 字符串基础知识 后缀数组模板 什么是后缀数组 后缀数组的核心是两个数组:$sa,rk$。 将字符串 $s$ 的所有后缀从小到大排序,$sa[i]$ 表示排名第 $i$ 的后缀的起始字符在原字符串中的下标(从 $1$ 开始编号),$rk[i]$ 表示起始位置为 $i$ 的 阅读全文
posted @ 2021-08-27 09:51 pengyule 阅读(363) 评论(0) 推荐(0) 编辑
摘要: 打地鼠,竞赛图,糖果,树(NOI2021轻重边·改) 阅读全文
posted @ 2021-08-14 15:29 pengyule 阅读(0) 评论(0) 推荐(0) 编辑
摘要: ### I/O //fread ```cpp namespace IO { const int kS = 1 '9')ch=getchar(); while(ch>='0'&&ch'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch,int,pa 阅读全文
posted @ 2021-08-14 11:46 pengyule 阅读(14) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2021-08-14 11:12 pengyule 阅读(0) 评论(0) 推荐(0) 编辑