05 2018 档案

摘要:有点模板的点分治, 设d[i](0≤i≤2)表示路径距离%3为i的数量 那么显然,方案数就为d[1]*d[2]*2+d[0]2 Code 阅读全文
posted @ 2018-05-29 19:40 void_f 阅读(137) 评论(0) 推荐(0)
摘要:询问树上是否存在距离为k[i]的点对 直接点分治把所有距离预处理出来,然后O(1)回答即可 Code 阅读全文
posted @ 2018-05-29 16:30 void_f 阅读(140) 评论(0) 推荐(0)
摘要:树分治之点分治入门 所谓点分治,就是对于树针对点的分治处理 首先找出重心以保证时间复杂度 然后递归处理所有子树 对于这道题,对于点对(u,v)满足dis(u,v)<=k,分2种情况 那么关键就是如何计算第一种情况 设d[i]表示点i到当前根rt的距离,可以将d数组排序后线性复杂度求 然而此时会有些点 阅读全文
posted @ 2018-05-28 20:22 void_f 阅读(211) 评论(0) 推荐(0)
摘要:题意:给定一棵树,每个节点有颜色,对于每个询问(u,k)询问以u为根节点的子树下有多少种颜色出现次数>=k 因为是子树,跟dfs序有关,转化为一段区间,可以用莫队算法求解 直接用一个数组统计出现次数>=k的颜色 Code 阅读全文
posted @ 2018-05-26 11:54 void_f 阅读(137) 评论(3) 推荐(0)
摘要:题意:定义K[x]为元素x在区间[l,r]内出现的次数,那么它的贡献为K[x]*K[x]*x 给定一个序列,以及一些区间询问,求每个区间的贡献 算是莫队算法膜版题,不带修改的 Code 阅读全文
posted @ 2018-05-25 20:03 void_f 阅读(148) 评论(0) 推荐(0)
摘要:可以看错把数字倒着插入,然后做CDQ分治 这题的答案统计十分的权(应该是我太cai了),具体看注释 Code 阅读全文
posted @ 2018-05-24 15:24 void_f 阅读(119) 评论(0) 推荐(0)
摘要:对于一个询问显然通过前缀和的思想可以拆开成4个询问, 还有题目读入的那个S是没有任何用处的... 然后CDQ分治就可以做了 Code 阅读全文
posted @ 2018-05-24 14:32 void_f 阅读(140) 评论(0) 推荐(0)
摘要:经典的三位偏序经(mo)典(ban)题, 一维排序,二维CDQ分治,3维BIT Code G M T 检测语言 世界语 中文简体 中文繁体 丹麦语 乌克兰语 乌兹别克语 乌尔都语 亚美尼亚语 伊博语 俄语 保加利亚语 僧伽罗语 克罗地亚语 冰岛语 加利西亚语 加泰罗尼亚语 匈牙利语 南非祖鲁语 卡纳 阅读全文
posted @ 2018-05-24 09:35 void_f 阅读(145) 评论(0) 推荐(0)
摘要:CQQ分治 Code 阅读全文
posted @ 2018-05-21 21:31 void_f 阅读(175) 评论(0) 推荐(0)
摘要:对于单个国家,可以对答案进行二分,每次找出此时的陨石数量,如果大于需要的那么答案就在[l,mid],否则就在[mid+1,r]里面 而对于很多国家,也可以进行二分,solve(l,r,L,R)表示询问id[l...r]的答案都在[L,R]之间 每次用树状数组统计一下 Code 阅读全文
posted @ 2018-05-18 14:56 void_f 阅读(130) 评论(0) 推荐(0)
摘要:可以整体二分求,当然主席树也可以 Code 阅读全文
posted @ 2018-05-17 20:04 void_f 阅读(103) 评论(0) 推荐(0)
摘要:[我是传送门] 因为边权只能增加,那么设f[u]为u子树上从i出发到达某个叶节点的最大路径, 显然Ans应该增加f[u]-f[v]-e[i].w Code 阅读全文
posted @ 2018-05-14 19:59 void_f 阅读(192) 评论(0) 推荐(0)
摘要:按题意给定字符串建无向图,找欧拉回路 按照定义,当没有奇数度点或者只有2个奇数度点时才有欧拉回路 Code 阅读全文
posted @ 2018-05-11 19:32 void_f 阅读(138) 评论(0) 推荐(0)
摘要:[BZOJ1899] 首先有个很贪心的思路,吃饭时间长的最先打饭为最优,所以开始先排个序 然后考虑DP,我们不需要知道某个人在哪个对,只要关注总的时间就行了 肯定需要一维表示当前同学编号,还需要表示某个窗口的打饭时间,如果知道其中一个窗口,另一个也可以知道,所以一维就行 那么用f[i][j]表示前i 阅读全文
posted @ 2018-05-11 16:52 void_f 阅读(166) 评论(0) 推荐(0)
摘要:[Luogu1156] f[i]表示高度为i时的存活时间 Code 阅读全文
posted @ 2018-05-11 11:28 void_f 阅读(204) 评论(0) 推荐(0)
摘要:[BZOJ1217] 这题也有树规的打法,但好复杂啊 贪心是这样的,对于深度最深的一个叶子节点,要覆盖它的话,肯定是覆盖它的爷爷是最优的 这样它的父亲跟兄弟都会被覆盖 所以每次找深度最深的,覆盖它的爷爷就行了 Code 阅读全文
posted @ 2018-05-10 19:09 void_f 阅读(127) 评论(0) 推荐(0)
摘要:Description 二进制病毒审查委员会最近发现了如下的规律:某些确定的二进制串是病毒的代码。如果某段代码中不存在任何一段病毒代码,那么我们就称这段代码是安全的。现在委员会已经找出了所有的病毒代码段,试问,是否存在一个无限长的安全的二进制代码。 示例: 例如如果{011, 11, 00000}为 阅读全文
posted @ 2018-05-09 20:41 void_f 阅读(217) 评论(0) 推荐(0)
摘要:[传送门] 树链剖分就行了,注意线段树上颜色的合并 Code 阅读全文
posted @ 2018-05-09 19:49 void_f 阅读(182) 评论(0) 推荐(0)
摘要:树剖模板题了, Code 阅读全文
posted @ 2018-05-09 19:47 void_f 阅读(84) 评论(0) 推荐(0)
摘要:[BZOJ4196] install x-> 询问根节点到x路径上0的个数,然后全变1 uninstall x-> 询问x子树(包括x)中1的个数,然后全边0 Code 阅读全文
posted @ 2018-05-09 19:45 void_f 阅读(162) 评论(0) 推荐(0)
摘要:[BZOJ3631] 树剖模板题了, Code 阅读全文
posted @ 2018-05-09 19:42 void_f 阅读(137) 评论(0) 推荐(0)
摘要:[不稳定的传送门 Solution dp[i][j]表示前i个字符当前匹配到不吉利串的第j个,即当前方案的后缀等于不吉利串前缀 然而由于n过大,不能直接转移,用矩阵优化 Code 阅读全文
posted @ 2018-05-04 19:14 void_f 阅读(120) 评论(0) 推荐(0)
摘要:struct info{ int n,m,A[N][N]; info(int a,int b):n(a),m(b){memset(A,0,sizeof(A));} int *operator [](int x){return A[x];} friend info operator *(info a,info b){ info c(a.n,b.m); for(int i=0;i>=... 阅读全文
posted @ 2018-05-04 09:14 void_f 阅读(136) 评论(0) 推荐(0)
摘要:[不稳定的传送门] AC自动机直接匹配 Code 阅读全文
posted @ 2018-05-02 18:51 void_f 阅读(138) 评论(0) 推荐(0)
摘要:[不稳定的传送门] Sloution 每次试一下最近的2个楼梯或者电梯就行了 Code 阅读全文
posted @ 2018-05-02 10:27 void_f 阅读(311) 评论(0) 推荐(0)
摘要:[不稳定的传送门] Solution 首先可以证明,hp翻倍的操作一定是在同一个生物上最优 Code 阅读全文
posted @ 2018-05-02 09:10 void_f 阅读(440) 评论(0) 推荐(0)