
Codeforces
CHN_JZ
爆0 forever
展开
-
[随机算法+Hash] Codeforces 799F Round #413 F. Beautiful fountains rows
题目梗概有nn个不同的数字,每个数字只出现在[L,R][L,R]中。 求所有满足要求的区间的长度和。 要求:出现在该区间的所有数字的个数必须为奇数,且必须有数字存在。解题思路考虑一个区间如何才能满足要求。 将每个数字赋上一个(263−1,0](2^{63}-1,0]的随机值。 这个区间所有数字的异或值再异或上这个区间出现过的数字,如果等于0,那么这个区间满足要求。对于区间所有数字的异或值构造原创 2017-08-01 23:19:06 · 869 阅读 · 0 评论 -
[DP]Codeforces 743E Vladik and cards
题目梗概给出 n 个元素的序列,每个元素的是大小不超过 8 的正整数。请找出满足下面两个条件的最长 子序列: 1. 任意两个数字出现的次数之差的绝对值不超过 1, 未出现的算 0次; 2. 相同的元素是连续的(在原始序列中可以不连续)。解题思路首先枚举一个t表示每个数的个数为t或t+1(这里其实可以二分)。因为每个数选择的区间必须连续,所以可以用DP验证。f[i][j]表示前i个数,j状态下的原创 2017-09-25 21:26:08 · 523 阅读 · 0 评论 -
[数位DP] Codeforces 809C Round #415 (Div. 1) C. Find a car
题目梗概有一个1e9∗1e91e9∗1e9的矩阵,记第x行y列的元素为(x,y) (x,y)的值,定义为所有(i,y),(x,j)(1≤i解题思路这种题目一看就是有一个结论。通过一些奇怪的途径我知道了结论,位于(x,y)的数字为((x−1)xor(y−1))+1((x−1)xor(y−1))+1运用容斥原理我们只需要考虑到(1,1)的矩阵的数字和。定义f[i][j][k][t]f[i][j][k原创 2017-09-27 21:36:03 · 546 阅读 · 0 评论 -
[矩阵快速幂加速DP]Codeforces 717D Bubble Cup 9 -Finals D. Dexterina’s Lab
题目梗概进行一个NIM游戏。对于每一堆,出现数字X(1<=X<=100)的概率为ax。求先手有必胜状态的概率。(堆数<=1e9)解题思路首先我们必须知道如果异或和为0为必输状态,否则必胜。f[i][j]f[i][j]表示前i堆,异或和为j的概率是多少。转移关系是一定的。f[i][jxork]+=f[i−1][j]∗p[k]f[i][jxork]+=f[i-1][j]*p[k]。显然可以构造矩阵优化。原创 2017-09-27 20:29:58 · 1332 阅读 · 0 评论 -
[2-sat]codeforces 875 C——National Property
题目梗概给出一些小写字符串,要求把一些单词改成大写,使得这些字符串的字典序与输入给出顺序相同。解题思路对于一个字符只有改和不改两种状态,所以马上想到2-sat。考虑如何建边,对于相邻的两个字符串,假设找到最近的不相同的两个字符a.b。如果a>b,那么a必须改大写,且b必须改小写。如果a#include<cstdio> #include<cstring> #include<vector> #inclu原创 2017-10-17 13:28:40 · 1109 阅读 · 0 评论 -
[Dsu on tree]CodeForces 600 E
题目描述给出一个树,树的每个节点有一个颜色。询问每个节点颜色最多的颜色编号和。解题思路树上启发式合并?考虑暴力,对于每个节点暴力遍历,之后删除该子树的贡献。不然发现有些删除没有必要,贪心的思想,对于每棵子树保留重儿子的贡献。所以操作为:遍历所有轻儿子不保留贡献,遍历重儿子保留贡献,遍历轻儿子增加贡献,得到该树答案。时间复杂度:考虑每个节点遍历的次数,显然是到根节点的轻边个数加重链个数+1,所以效率就原创 2017-12-19 19:32:27 · 427 阅读 · 0 评论