- 博客(14)
- 收藏
- 关注
原创 2026.7.27-2026.8.2(周报14):
C(Rank Subsequence):首先不能直接贪心,左排名和右排名必须同时考虑(原本想正向逆向都考虑一遍,都满足的点就是可以的点),其次不能二分,可能存在3不行4行的情况,应该直接遍历长度找最长;
2026-08-03 09:13:05
226
原创 2026.7.20-2026.7.26(周报13):
F(小红的网格图构造2.0):一个2*2的正方形,包含坐标(奇,偶),(偶,偶),(奇,奇),(偶,奇),取数量少的数为目标元素,依次填(奇,奇),(偶,偶);):将数转化为二进制,依次看哪一位缺失,从第一位往后看,这一位还有多的没用就合2为1到下一位(麻烦的思路:不去处理多的,当遇到缺失的再向前去找有没有可以合成的,代码复杂很多,很难写对);p1714(切蛋糕):要求和的最大,可以利用前缀和求区间和的方法he[r]-he[l-1]也就是求he[l-1]的最小,遍历r找最小的l也就是典型的单调队列;
2026-07-27 09:09:06
181
原创 2026.6.8-2026.6.14(周报12):
c(Vessels, Heights and Two Versions (Easy Version)):遍历n个容器每个容器顺时针,逆时针2个方向分别考虑(即分别考虑一个容器的左挡板与右挡板),每个容器取2种情况的最小值(满足所有限制),加一起即为答案;I(Last Train):从n开始倒着推最晚时间,用dj最短路实现(注意用最小堆);结尾的最长好子序列长度。D(小红的子序列):先用欧拉筛,找出每个数的最小质因数,设。的最优结尾位置和长度。必须是整数且是之前出现过的数;,我们枚举它的所有质因子。
2026-06-25 19:55:27
224
原创 2026.6.1-2026.6.7(周报11):
D(小红的子序列计数):6的倍数即是同时为2,3,的倍数,2的倍数就是偶数,3的倍数就是数位之和为模3为0,定义dp[x][y],遇到一个新数后x为加上新数后mod3的值y为奇数偶数的判断,一个数为0则能跟在前面全部为0的后面也可以在有效值后面,不为0的话前面是什么样的数都能跟(使dp数值不为0,创造的有效的数值);H(Only one of two):二分答案,个数x满足f(x)=x / a + x / b - 2 * (x / lcm);(gcd与lcm的求法,辗转相除法);
2026-06-08 19:21:19
234
原创 2026.5.25-2026.5.31(周报10):
C2(We Be Flipping (Hard Version)):假如x+1位置的数为正数,通过上一个题的结论——可以把前x个数都变为负数,最后把x+1上的数反转一遍,通过这样找到正贡献最大的位置(可能都为负贡献),在单独求次数与具体要改变的数;E(小红的染色生成树):枚举缺失哪个颜色,然后判断其他2个颜色是否有边,之后利用并查集先强制加2个颜色的边各一条,最后全部用并查集判断2个颜色所有的2点是否连通,是就不管,不是就加入这个边,最后如果有n-1个边就成立;
2026-06-02 20:44:34
198
原创 2026.5.18-2026.5.24(周报9):
D(骗你的,其实我是小红):令k为2的m次方,所以对于两个数x,y他们^后为k的倍数,所以他们的二进制下后m个位数上的数字要相同,再所以x,y对k取模后的数相同,对于一段长度为len的数字,我们就可以把他们分为k组(每种余数一组),每组至少[len/k]个数,然后[len%k]个数分别加在最小的[len%k]个余数中,每种+1,最后组合计算即可;2——小一位全部取给的元素的最大值;3——从最大位到第一个与a不同的位数,每一位都取当前位上的数的大一点的数(小),后面全取最小的(最大的);
2026-05-24 21:40:22
44
原创 2026.5.11-2026.5.17(周报8):
L(Critical Strike):题目关键在于有最大值的覆盖,所以我们要想到从小到大排序倍率,之后再写01背包,这样每次的攻击就会是最大值,转移方程就变成了dp[l]=max(dp[l],dp[l-w[i]]*(1-p)+p*v[i]),会方便考虑很多;D(小红的最佳区间):一个范围(x,x+k)要想包含(l,r),x就要属于(l-k,r),所以进入l- k时ans++,到r+1时ans--;I(爬塔糕手):用map记数时,每次的查找和插入都是logn,确定好最大值用vector记录;
2026-05-18 18:58:40
47
原创 2026.5.4-2026.5.10(周报7):
F(小苯的DFS):统计每个根节点的所有子节点的最大值与最小值,根据dfs的遍历顺序判断是 否能构成不降序列,其中一样的最大值与最小值就会产生多种情况,并且涉及 逆元;E(小苯的区间操作):思维题,每段区间的极大值不能唯一,不然永远消不掉,不唯一时他们可 以变成每一个小的数均可构成区间消去;
2026-05-10 22:15:29
42
原创 2026.4.27-20265.3(周报6):
C(Mental Monumental (Easy Version)):答案二分,从大到小贪心的考虑值的分配(有这个值 就mod成本身值,没有则看有没有大于2*x的数,满足 这可以尝试更大的答案);O(26)的复杂度;
2026-05-03 18:25:25
254
原创 2026.4.20-2026.4.26(周报):
8(智慧文本编辑器):字符串find(s,pos)的使用(返回下标),insert(pos,s)的使用, reverse(s.begin() + l, s.begin() + r + 1)的使用(左闭右开);D,E(小红的排序):用并查集将可相互转换的元素归为一堆,然后分别排序并同时检查每一堆数 字是否符合该堆的要求(a[i]与i对应);
2026-04-26 21:03:28
40
原创 2026.4.13-2026.4.19(周报):
(用 kk 种颜色给一个长度为 LL 的环染色,要求相邻节点颜色不同,求方案 数:f(L)=(k−1)L+(−1)L(k−1)L为次方。13(人生就像一场旅行):读题!11(胖达的山头):时间区间有重合,重合最高的即为最少山数,起点+1终点-1来记录深度;F(小红的树权值):由于1到n均有对应的节点,利用有向边构图,分情况处理成环与不成环;12(被n整除的n位数):dfs搜索所有情况,注意dfs中for循环的使用;
2026-04-19 18:56:17
60
原创 2026.4.6-2026.4.12(周报):
12(势均力敌):先用next_permutation列出全排列的所有情况,之后用dfs遍历每一种情况,有 不符合的提前剪枝;F(小苯的对称序列):区间dp,对于每个求和情况从最小长度遍历到最长长度(观察到数都比较 小);D(小苯的路径计数):从根开始dfs,每次找到一个终点,同时记录长度l,ans+=(l-1);C(小苯的数位排序):从后往前考虑;
2026-04-12 18:51:47
59
原创 2026.3.30-2026.4.5(周报):
max (a[i] - i) - (a[j] - j) 其中 j < i,max (a[j] + j) - (a[i] + i) 其中 j < i,D(小苯的序列涂色):动态规划,第一层循环遍历终点,第二层循环遍历起点,在第一层后用一 个mi维护要涂完前面的点的最小值,之后写出转移方程;9(三足鼎立):遍历一次n,每一次用二分找上下界(三角形边的关系);4(小孩子才做选择,大人全都要):读题!
2026-04-05 20:58:43
55
原创 2026.5.23--2026.5.29周报
7(爆气球):滑动窗口问题;9(海盗分赃):从一个海盗开始计算,后面发现规律;12(红色警报):利用dfs去计算孤立城市数量;14:(那就别担心了):用记忆话搜索找到路径数,用递归判断自洽性;
2026-03-29 18:53:04
51
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅