Codeforces Div. 2:E
文章平均质量分 91
ProLightsfxjh
这个作者很懒,什么都没留下…
展开
-
Codeforces Round #389 (Div. 2) E. Santa Claus and Tangerines 二分+贪心+记忆化搜索
题意:有n个橘子,每个橘子可以分成ai瓣,但每次只能把 一个完整的橘子或者由一些把构成的部分橘子 分成尽可能相等的两部分,即如果瓣数是偶数则当前只能分成相等的2部分,如果是奇数则分成2部分其中一部分比另一部分多1,然后把这些得到的橘子或者瓣分给k个小朋友,其中小朋友们得到瓣数中的最小值是答案,要求这个答案尽可能大 二分+贪心+记忆化搜索 由于每个小朋友只能得到一个橘子或者一些由瓣构成的部分橘子,所答案最大为max{ai} 这里ans 属于[1, 1e7],故在(0, 1e7 + 1)内]对答案进行二分(不会原创 2017-01-12 01:25:00 · 964 阅读 · 0 评论 -
Codeforces 17E Palisection 回文自动机+邻接表
题意:给出一个字符串要求找出多少对有相交部分的回文子串。 回文自动机+邻接表 首先,直接求这个问题比较麻烦,故可以转化为总的回文子串的对数减掉不相交的回文子串的对数。 故先预处理出suml[i]表示从左到到,0~i-1内的回文子串的个数, 然后倒的再建一个自动机,每次 lesr = num[last]表示插入这个字符以后以这个字符结尾的回文子串的个数,然后 suml[i] * lesr就是此时的不相交的回文子串的对数, 然后对于每个i都求出不相交的回文子串的对数,然后总对数减去这个即可。 之后就是超内存的问原创 2017-03-10 00:45:34 · 1087 阅读 · 0 评论 -
Codeforces Round #420 (Div. 2) E. Okabe and El Psy Kongroo dp+矩阵快速幂
题意:从(0,0)走到(k,0)(1 ≤ k ≤ 1018),每次可以从(x, y) 走到 (x+1, y+1) 或 (x+1, y) 或 (x+1, y-1),然后必须在很多个y == ci的线段下面走, (相邻的线段,前一个的结束x坐标bi和后一个线段的开始x坐标ai+1 相同,且y = ci可能不同) dp+矩阵快速幂 比较裸的dp+矩阵快速幂,因为这里k为1e18,所以几乎只能用矩阵快速幂来做了。 朴素的dp,dpij表示走到(i, j)时的方案数, 则 状态方程为,if(j+1 <= b[k])原创 2017-06-26 19:56:39 · 1305 阅读 · 0 评论 -
Codeforces 620E New Year Tree dfs序+线段树+状态压缩
题意:给定一棵树,每个节点都有颜色,然后询问子树上有多少种不同的颜色。 dfs序+线段树+状态压缩 由于只有60种颜色(2^60 < 2^63),所以可以直接用二进制压位。 即sum[Ind]维护的是该区间的一个状态,从右向左第i位表示第i种颜色在该区间是否出现。 然后用上线段树区间修改+区间查询即可。 时间复杂度 O(nlogn) 空间复杂度 O(4*n)原创 2017-10-13 18:22:55 · 877 阅读 · 0 评论