Codeforces
Neo__Z
这个作者很懒,什么都没留下…
展开
-
Codeforces-337D Book of Evil【树形dp】
解题思路:其实就是对于每个点维护它到最远关键点的距离,最后看该距离是否小于d即可。 每个点维护三个值:dis1(到子树中关键点距离的最大值),dis2(到子树中关键点距离的次大值),disup(到不在其子树中关键点距离的最大值)。#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<algor原创 2017-10-23 14:26:36 · 342 阅读 · 0 评论 -
codeforces618f Double Knapsack【抽屉原理】
解题思路:真是道非常妙的构造。不妨设总和小的是集合A。我们把集合看成数组,对两个数组各求前缀和(包括0号位置);那么对于每个sumA[i]sumA[i],必然存在一个sumB[j]sumB[j],使得0≤sumA[i]−sumB[i]<n0\le sumA[i]-sumB[i]<n,设为d[i]d[i],可以发现jj随ii单调增。注意到最后d[i]d[i]有n+1n+1个(d[0] d[n])(d[原创 2017-12-28 21:54:31 · 411 阅读 · 0 评论 -
CodeForces 682E Alyona and Triangles【最大三角形 旋转卡壳or迭代】
题目大意:给出n个点,任意三个点组成的三角形面积不超过S,S大于n个点可以组成三角形的最大面积; 构造一个大三角形覆盖上述所有n个点,并且面积不超过4S;解题思路:不得不说思路很巧妙,不过题目中的S取值也相当于给了个暗示。结论:先求出最大三角形ABCABCABC,再以abc分别作为三边中点所得三角形A′B′C′A′B′C′A'B'C'即是所求三角形。如图: 证明:...原创 2018-02-25 14:44:19 · 433 阅读 · 0 评论 -
Codeforces908G - New Year and Original Order【数位dp】
题目大意:令S(i)表示将i的数位从小到大排序后形成的数。例如S(50394)=3459。 给定整数n,求S(1)+…+S(n)。对10^9+7取模。 1<=n<=10^700。解题思路:对于形如3459这种不下降数,一般可以化为a[4]*1111+a[3]*111+a[2]*11+a[1]*1的形式去处理。 其中a[i]的意义为相邻两位的差,又可以表示为所有数位中大...原创 2018-05-17 09:33:09 · 563 阅读 · 1 评论 -
Codeforces908D. New Year and Arbitrary Arrangement【期望dp】
题目大意:给定整数k,pa,pb。 初始有一个空序列,每次往末尾添加一个字符,有pa/(pa+pb)的概率添加a,有pb/(pa+pb)的概率添加b。 当ab作为子序列出现了至少k次的时候停止,问此时ab**子序列**出现次数的期望。对10^9+7取模。 1<=k<=1000,1<=pa,pb<=10^6。解题思路:设f[i][j]f[i][j]f[i...原创 2018-05-16 20:27:22 · 309 阅读 · 0 评论