随笔分类 -  CODEFORCES

摘要:首先我们可以假设最后一个删除的peg编号是x,那么可以发现每个编号结尾的方案数是一样的,可以只专注计算最后删1号peg的方案数,然后乘一下就好 然对于1来说,我们需要找到一个(x, y) 的组合,x和y之间允许剩pegs,但是1到x,以及y到1之间的pegs都被移除,这个状态在此时依然没有触碰blu 阅读全文
posted @ 2023-08-05 16:25 basasuya 阅读(157) 评论(0) 推荐(1)
摘要:可以推出 min[i]要么是i要么是1,当a序列中存在这个数是1 max[i]的话就比较麻烦了 首先对于i来说,如果还没有被提到第一位的话,他的max可由他后面的这部分序列中 j =i 的不同数多少所决定,这个可以用树状数组解决 其次就是两次被提到第一位的中间的空当,这个空当中不同的数的大小,也会决 阅读全文
posted @ 2020-01-30 21:53 basasuya 阅读(236) 评论(0) 推荐(0)
摘要:这题写起来真的有点麻烦,按照官方题解的写法 先建图,然后求强连通分量,然后判断掉不符合条件的换 最后做dp转移即可 虽然看起来复杂度很高,但是n只有15,所以问题不大 阅读全文
posted @ 2019-11-13 11:10 basasuya 阅读(284) 评论(0) 推荐(0)
摘要:这题是一个贼搞人的线段树 线段树维护的是 区间和a[i j] 首先对于update的位置可以二分查找 其次update时候的lazy比较技巧 比如更新的是 l r段,增加的是c 那么这段的值为: a[l] + c, a[l + 1] + k[l] + c, .... a[r] + k[l] + .. 阅读全文
posted @ 2019-04-10 22:07 basasuya 阅读(244) 评论(0) 推荐(0)
摘要:非常经典的dp题,因为1至8的最大公约数是840,任何一个数的和中840的倍数都是可以放在一起算的, 所以我只需要统计840 8的值(每个数字(1 8)的sum%840的总和),剩下都是840的倍数 dp[i][j] 代表讨论了第i位并且每个数字取余为j的情况 阅读全文
posted @ 2019-04-08 22:08 basasuya 阅读(169) 评论(0) 推荐(0)
摘要:应该是我做过最复杂的数位dp了 做之前已经忘了数位dp是啥了,找了一个博客复习下 然后这题不同的是求的是和,而不是个数 所以需要维护更多的元素 dp[i][j]val, count, remain 代表讨论到i位置,已经有mask(j) (0 9分别2进制表示)时他的剩下位数的总值,计数,以及前面全 阅读全文
posted @ 2018-12-05 22:42 basasuya 阅读(205) 评论(0) 推荐(0)
摘要:从(1,1,n,n)每次只变一个坐标,进行询问。 如果问到对角线有距离限制, 再从(1,1,n/2,n/2)询问到(n/2,n/2,n,n) 记住前半部分贪心忘上走,后本部分贪心往右走 因为最后的路线可能有多条 所以这样走的话一定能找到一条对角线在右上角的路线 c++ include include 阅读全文
posted @ 2018-09-02 00:20 basasuya 阅读(189) 评论(0) 推荐(0)
摘要:从最大的数开始讨论 如果最大的数中间有断开的地方,那么就需要从0里面选,把他填上 需要使用树状数组 include include include include include include include include include include include include incl 阅读全文
posted @ 2018-09-02 00:16 basasuya 阅读(156) 评论(0) 推荐(0)
摘要:有图可以直观发现,如果一开始的pair(1,1+n/2)和pair(x, x+n/2)大小关系不同 那么中间必然存在一个答案 简单总结就是大小关系不同,中间就有答案 所以就可以使用二分 include include include include include include include i 阅读全文
posted @ 2018-08-15 23:05 basasuya 阅读(168) 评论(0) 推荐(0)
摘要:首先枚举Berland最后的得票数,然后根据这个得票数, 根据得票数,贪心的取价钱少的人: 首先 原票数 就比Berland预计票数的团队 需要票投到比Berland少1 如果Berland还是达到预计的票数,然后再贪心从其他人中取 c++ include include include inclu 阅读全文
posted @ 2018-08-15 22:59 basasuya 阅读(207) 评论(0) 推荐(0)
摘要:这道题比赛之后被重新加了几个case,很多人现在都过不了了 算法就是先求凸包,然后判断两个凸包相等 我们可以吧凸包序列化为两点距离和角度 角度如果直接拿向量的叉积是不对的,,因为钝角和锐角的叉积有可能相同。我直接把点积和叉积加一起当作角度其实也不严谨,,最好是变成三个元素,长度,叉积,点积 代码有所 阅读全文
posted @ 2018-08-13 23:14 basasuya 阅读(203) 评论(0) 推荐(0)
摘要:首先我们如果满足三缺一,那么必有同行和同列的点 如果两行有同列的数,我们可以设想,他们最后会全部填充成为两者啥都有的情况 显然这个是个并查集 现在我们有了很多集合,每个集合自己可以进行三缺一操作,但是集合有缺陷,集合里面的人都没有的列数,那就没法搞 可以贪心的想,一共k个集合的话,把k个集合连接起来 阅读全文
posted @ 2018-08-06 01:02 basasuya 阅读(264) 评论(0) 推荐(0)
摘要:正常没有正方形的限制下,值为i的点个数4 i 那么从0开始遍历,第一个不为4 i的值就是min(x, y) 由于对称性我们姑且令x为这个值 我们先列举n m=t的各种情况 对于一对n, m。我们已经知道n,m,x 再由于对称性,我们假设距离(x,y)最远的点在(n, m)。(当然也可能在(1,m)) 阅读全文
posted @ 2018-07-16 20:39 basasuya 阅读(175) 评论(0) 推荐(0)
摘要:这个题是dp, dp[i]代表以i开始的符合要求的字符串数 j是我们列举出的i之后一个字符串的开始地址,这里的C是组合数 dp[i] += C(j i 1, A[i]] ) dp[j]; include include include include include include include 阅读全文
posted @ 2018-06-29 21:10 basasuya 阅读(216) 评论(0) 推荐(0)
摘要:这道题的算法是: i从1开始,首先求sum(1 i),然后在[i+1, n]中找到第一个a[j] =sum(1, i) 如果a[j]==sum(1, i)结束搜索,否则令i=j,循环过程 因为每次做完一次之后sum会至少增大一倍,所以一个查询的复杂度会维持到log(Max(a[i])) 需要维护 区 阅读全文
posted @ 2018-06-27 22:45 basasuya 阅读(206) 评论(0) 推荐(0)
摘要:首先达成一个共识,n为偶数,无法做到 因为n为偶数,最后奇数条边,和每次撕偶数条边不符合 n为奇数时,做dfs 首先一个除了root每个点都是奇数度的树,可以通过先序序列把这个树撕掉(这个自己脑补) 如果上述成立,那么我可以直接dfs,从离叶子最近的地方找这种树,并且把他撕掉 大概就像从叶子不断向上 阅读全文
posted @ 2018-04-19 00:16 basasuya 阅读(113) 评论(0) 推荐(0)
摘要:首先0 k项可以直接求出 其次后面(n+1)/k组项其实构成了等比数列(比值是a^{ k}b^{k}) 那么此时还需考虑这个比值为1的特殊情况就行了(不仅a==b的时候这个比值会为1,因为取余,一些乱七八糟的情况也会造成比值为1) include include include include in 阅读全文
posted @ 2018-04-19 00:08 basasuya 阅读(217) 评论(0) 推荐(0)
摘要:这道题我可以直接模拟 理由是一个数 2的过程中最多30次左右 2^31 = 2e9 所以我可以从小的书开始模拟这个过程 阅读全文
posted @ 2018-04-15 23:58 basasuya 阅读(119) 评论(0) 推荐(0)
摘要:``` include include include include include include include include include include const int N = 1e5 + 5; struct fraction { long long num, deno; temp 阅读全文
posted @ 2018-04-14 23:19 basasuya 阅读(190) 评论(0) 推荐(0)
摘要:首先可以前缀和 ans = solve(R) solve(L 1) 对于solve(x) 1 x当中符合条件的数 分两种情况 1. 3,5,7,9次方的数,注意这地方不能含有平方次 2. 平方数 c++ include include include include include std::vec 阅读全文
posted @ 2018-03-24 20:56 basasuya 阅读(323) 评论(0) 推荐(0)