摘要: "HDU 6218 Bridge" Problem : 给一个2×n的矩阵,一开始矩阵所有相邻点之间有一条边。有其、个询问,每次给出两个相邻的点的坐标,将其中的边删除或者添加,问如此操作之后整张图的割边数量。 , q using namespace std; const int N = 2e5 + 阅读全文
posted @ 2017-11-14 18:51 rpSebastian 阅读(818) 评论(0) 推荐(1) 编辑
摘要: "Wannafly挑战赛2_D Delete" Problem : 给定一张n个点,m条边的带权有向无环图,同时给定起点S和终点T,一共有q个询问,每次询问删掉某个点和所有与它相连的边之后S到T的最短路,询问之间互相独立(即删除操作在询问结束之后会立即撤销),如果删了那个点后不存在S到T的最短路,则 阅读全文
posted @ 2017-11-13 23:51 rpSebastian 阅读(336) 评论(0) 推荐(0) 编辑
摘要: "BZOJ3926 诸神眷顾的幻想乡" Problem : 给一个n个节点的树(n using namespace std; const int N = 1e5 15 2; vector eg[N]; int cl[N]; int deg[N]; int n, c; struct Suffix_Au 阅读全文
posted @ 2017-09-21 21:03 rpSebastian 阅读(137) 评论(0) 推荐(0) 编辑
摘要: "Codeforces 848C Goodbye Souvenir" Problem : 给一个长度为n的序列,有q个询问。一种询问是修改某个位置的数,另一种询问是询问一段区间,对于每一种值出现的最右端点的下标与最左端点的下标的差值求和。 Solution : 定义pre[i] 为 第i个位置的数字 阅读全文
posted @ 2017-09-14 21:26 rpSebastian 阅读(230) 评论(0) 推荐(0) 编辑
摘要: "CERC 2014 Pork barrel" Problem : n个点m条边有边权的无向图,有q个询问,每次询问权值在[L,R]内的边组成的最小生成树的权值和,强制在线。 n include include include include include include include incl 阅读全文
posted @ 2017-08-27 23:36 rpSebastian 阅读(168) 评论(0) 推荐(0) 编辑
摘要: "UOJ 58 糖果公园" Problem : 给一棵n个点的树,每个点上有一种颜色,对于一条路径上的点,若 i 颜色第 j 次出现对该路径权值的贡献为 w[i] c[j], 每次询问一条路径的权值,或者修改某个点的颜色。 Solution : 树上的带修改的莫队。 使用dfs序来对左右端点进行分块 阅读全文
posted @ 2017-08-25 23:47 rpSebastian 阅读(172) 评论(0) 推荐(0) 编辑
摘要: "UVA12345 Dynamic len" Problem : 给一个序列,每次询问一个区间里面的数字种类数量,或者修改某一个位置的值。 Solution : 第一关键字分块排序左端点,第二关键字分块排序右端点,第三关键字排序询问顺序。 左端点移动总的时间复杂度为 q block_size + b 阅读全文
posted @ 2017-08-25 14:44 rpSebastian 阅读(114) 评论(0) 推荐(0) 编辑
摘要: "BZOJ2038: 小Z的袜子" Problem : N只袜子排成一排,每次询问一个区间内的袜子种随机拿两只袜子颜色相同的概率。 Solution : 莫队算法真的是简单易懂又暴力。 莫队算法用来离线处理区间询问,要求每次区间的端点左右移动1可以直接求出,通过第一关键字分块排序左端点,第二关键字排 阅读全文
posted @ 2017-08-25 14:37 rpSebastian 阅读(158) 评论(0) 推荐(0) 编辑
摘要: "Gym 215177D 母亲节的礼物" Problem : 给n个点m条边的无向图,每个点的度数小于等于7,要求用4种不同的颜色给每个点染色,使得每个点相邻的点中最多只有一个相同颜色的点。(n include include include include include include incl 阅读全文
posted @ 2017-08-16 19:22 rpSebastian 阅读(105) 评论(0) 推荐(0) 编辑
摘要: "HDU 6076 Security Check" Problem : 有两个长度为n的队列过安检,每个人有一个特征值。如果两个队列中的第一个人的特征值之差小于等于k,那么一次只能检查其中一个人,否则一次可以检查两个人。每次检查花费1的世时间。问最后检查完所有人之后所需要的时间。(n k) dp[i 阅读全文
posted @ 2017-08-03 21:25 rpSebastian 阅读(535) 评论(0) 推荐(0) 编辑
摘要: "HDU 6070 Partition" Problem : 给一段长度为n的序列,要求找出一段区间,使得这段区间的数字种类除以区间长度最小。输出最后的答案即可。(n include include include include include include include include in 阅读全文
posted @ 2017-08-03 20:12 rpSebastian 阅读(193) 评论(0) 推荐(0) 编辑
摘要: "HDU 4651 Partition" Problem : n的整数划分方案数。(n include include include include include include using namespace std; const int N = 1e5 + 8; const int mo = 阅读全文
posted @ 2017-08-02 20:38 rpSebastian 阅读(178) 评论(0) 推荐(0) 编辑
摘要: " HDU 6035 Colorful Tree" Problem : 给一棵树,每个结点有一种颜色,定义每条路径的权值为这条路径上颜色的种数,询问所有路径(C(n,2)条)的权值之和。 Solution : 分开考虑每种颜色对答案的贡献。对于一种颜色,一共有C(n,2)条路径,再考虑问题的反面。不 阅读全文
posted @ 2017-07-25 19:54 rpSebastian 阅读(338) 评论(0) 推荐(0) 编辑
摘要: "HDU 4436 str2int" Problem : 给若干个数字串,询问这些串的所有本质不同的子串转换成数字之后的和。 Solution : 首先将所有串丢进一个后缀自动机。由于这道题询问的是不同的子串之间的计数,不涉及子串的数目,因此考虑用后缀链即后缀自动机的nt转移数组来做。首先将所有节点 阅读全文
posted @ 2017-07-24 19:38 rpSebastian 阅读(320) 评论(0) 推荐(0) 编辑
摘要: "HDU 4622 Reincarnation " Problem : 给一个串S(n include using namespace std; const int N = 2008; const int INF = 2000000008; struct suffix_automanon { int 阅读全文
posted @ 2017-07-22 20:46 rpSebastian 阅读(115) 评论(0) 推荐(0) 编辑