摘要: 这道题教会了我并查集是可以动态删改的,关键在于判断其是否是连通分量的代表 #include<bits/stdc++.h> using namespace std; typedef long long LL; LL t,n,m1,m2,ans,a[500005],b[500005],fag[50000 阅读全文
posted @ 2026-02-02 21:41 曾翎一 阅读(1) 评论(0) 推荐(0)
摘要: https://codeforces.com/problemset/problem/2072/E 这个相等条线等价于这两个点横坐标或者纵坐标是相同的。所以就是求三角数,用while把他暴力拆成若干个i*(i-1)/2就可以了。 #include<bits/stdc++.h> using namesp 阅读全文
posted @ 2026-01-24 18:43 曾翎一 阅读(4) 评论(0) 推荐(0)
摘要: https://codeforces.com/problemset/problem/2106/D 解题思路:我们不光要求前缀,还要求后缀。我们可以用前后缀分别来维护a[N]大于b[N]的数目,到时候这届如果前缀数不够的话我们就直接拼起来看行不行。 #include<bits/stdc++.h> us 阅读全文
posted @ 2026-01-24 16:16 曾翎一 阅读(5) 评论(0) 推荐(0)
摘要: https://qoj.ac/contest/2562/problem/14692 双指针,这种感觉像O(n2)的都是双指针来做的。但是指针的移动你一定要看仔细了,要画图。先是l和r都要移动来保证长度,然年后进行判断,区间一定是连续的,因为这个要符合贪心。 #include<bits/stdc++. 阅读全文
posted @ 2026-01-21 17:56 曾翎一 阅读(5) 评论(0) 推荐(0)
摘要: 我们以 n=7264 为例。 因为我们的任务是求 1−n 的数码之和,考虑对问题进行拆解: 求出 1−6999 的数码之和 求出 7000−7264 的数码之和 为什么这样拆?看下去就知道了。 对于第一部分:我们可以进行DP 约定 f(i,j) 为 i 位数,其中最高位是 j 的, 1− j99.. 阅读全文
posted @ 2026-01-19 15:52 曾翎一 阅读(4) 评论(0) 推荐(0)
摘要: https://codeforces.com/problemset/problem/2147/C 我们思考兔子怎么才不能跳到花坛,对于这样偶数个 0 的子串,我们可以构造两个兔子面对面,对于 01010101,我们可以构造两个兔子往一个花坛里面跳。 那么也就是说我们可以快速判断两个兔子是否合法,具体 阅读全文
posted @ 2026-01-16 15:58 曾翎一 阅读(2) 评论(0) 推荐(0)
摘要: https://codeforces.com/problemset/problem/2108/C 思路很简单,其实就是要找数据中的山峰就可以了。原来的代码是之所以会错就是因为你在盆地到n的情况会被误判为山峰。所以最好的方法就是先去掉连续相同的部分。p[0]和p[n+1]分别设置成0,就可以了。 #i 阅读全文
posted @ 2026-01-16 11:16 曾翎一 阅读(4) 评论(0) 推荐(0)
摘要: https://codeforces.com/problemset/problem/2129/B 首先不用太在意t的大小,你还是看n的量级就行了。5000就是可以o(n2)的。而在可以动态调整操作的问题里你要找那些不会随你操作改变的东西。这里面就是对于任意满足 j>i,pj>pi,无论 aj是否翻转 阅读全文
posted @ 2026-01-16 09:57 曾翎一 阅读(4) 评论(0) 推荐(0)
摘要: 题目链接:https://codeforces.com/problemset/problem/2140/C 解题思路:博弈论一定要找出博弈在哪里。博弈的思想往往是简单的,只需要考虑最近一步就可以了。我一开始是想A有轮椅打法就是同奇偶位置交换它是净赚的,B就得选择最佳的位置交换了。但是多想一步,B即便 阅读全文
posted @ 2026-01-16 02:11 曾翎一 阅读(5) 评论(0) 推荐(0)
摘要: 当你要做数学计数的时候,如果这个数学计数你写式子算不出来,那多半是写dp来计数的。这道题可以想到是做以d为最大的被删除的数,如何去重是关键,我们可以算出kd的倍数个数再从中取个数-1,这个时候分块的意义就体现了 阅读全文
posted @ 2025-11-07 00:31 曾翎一 阅读(11) 评论(0) 推荐(0)