摘要: "cf 443 D. Teams Formation" (细节模拟题) 题意: 给出一个长为$n$的序列,重复$m$次形成一个新的序列,动态消除所有k个连续相同的数字,问最后会剩下多少个数(题目保证消除的顺序对答案不会造成影响) $n define P pair define LL long lon 阅读全文
posted @ 2017-10-30 21:24 jiachinzhao 阅读(253) 评论(0) 推荐(0) 编辑
摘要: "cf 442 div2 F. Ann and Books" (莫队算法) 题意: $给出n和k,和a_i,sum_i表示前i个数的和,有q个查询[l,r]$ 每次查询区间$[l,r]内有多少对(i,j)满足l define LL long long using namespace std; con 阅读全文
posted @ 2017-10-26 18:41 jiachinzhao 阅读(258) 评论(0) 推荐(2) 编辑
摘要: "cf 442 D. Olya and Energy Drinks" (bfs) 题意: 给一张$n \times m(n 这里有两种方法可以来实现 1、用set来维护每行每列的点,从set中查找出当前点四个方向最近的点 判断距离是否超过k,更新完之后再从set中删点 这样的时间复杂度为$O(n m 阅读全文
posted @ 2017-10-26 11:14 jiachinzhao 阅读(215) 评论(0) 推荐(0) 编辑
摘要: "fzu 2246" (ac 自动机) 题意: 某一天YellowStar学习了AC自动机,可以解决多模式匹配问题。YellowStart当然不会满足于此,它想进行更深入的研究。 YellowStart有一个母串$S$,以及$m$个询问串$T$,它发现如果把母串删除掉一个子串,把剩余的串按原先顺序拼 阅读全文
posted @ 2017-10-24 19:17 jiachinzhao 阅读(174) 评论(0) 推荐(0) 编辑
摘要: ``` / CDQ分治的对象是时间。 即对于一个时间段[L, R],我们取mid = (L + R) / 2。 分治的每层只考虑mid之前的修改对mid之后的查询的贡献,然后递归到[L,mid],(mid,R]。 显然,CDQ分治是一种离线算法,我们需要将所有的修改/查询存下来,一起进行操作。 同时 阅读全文
posted @ 2017-10-23 21:40 jiachinzhao 阅读(222) 评论(0) 推荐(0) 编辑
摘要: ``` include using namespace std; const int MAXN = 1e6 + 10; / 小根堆,size个元素的序列满足 k[i] 1){ if(data[pos 1] data[pos]){ swap(data[pos 1],data[pos]); pos = 阅读全文
posted @ 2017-09-26 20:41 jiachinzhao 阅读(210) 评论(0) 推荐(0) 编辑
摘要: ``` include define P pair using namespace std; typedef long long LL; typedef struct LNode{ int data; struct LNode nxt; }LNode, LinkList; bool Linklist 阅读全文
posted @ 2017-09-16 21:35 jiachinzhao 阅读(184) 评论(0) 推荐(0) 编辑
摘要: "hdu 6200 mustedge mustedge" (并查集+树状数组 或者 LCT 缩点) 题意: 给一张无向连通图,有两种操作 1 u v 加一条边(u,v) 2 u v 计算u到v路径上桥的个数 思路: 对于一颗树来说,其实就是统计u到v路径上白边的个数, 加边就是将u到v的路径上所有边 阅读全文
posted @ 2017-09-15 16:14 jiachinzhao 阅读(238) 评论(0) 推荐(0) 编辑
摘要: "hdu 6203 ping ping ping" (LCA+树状数组) 题意:给一棵树,有m条路径,问至少删除多少个点使得这些路径都不连通 $1 define LL long long using namespace std; const int N = 1e4 + 10; vector G[N] 阅读全文
posted @ 2017-09-15 12:11 jiachinzhao 阅读(188) 评论(0) 推荐(0) 编辑
摘要: "2017 湖南省赛 K Football Training Camp" 题意: 在一次足球联合训练中一共有$n$支队伍相互进行了若干场比赛。 对于每场比赛,赢了的队伍得3分,输了的队伍不得分,如果为平局则两支队伍各得1分。 现在给出每只队伍的得分$s_i$,问最少和最多进行了多少场比赛,不超过10 阅读全文
posted @ 2017-09-09 11:05 jiachinzhao 阅读(459) 评论(0) 推荐(0) 编辑