摘要: 这道题是暑假写的。但是当时数据结构学傻了,写了个莫队。 然后刚刚发现没过,连忙重新看题。 想了想发现跟可以跟Ynoi有一道区间众数题一个思路处理一下,直接二分就完了。 就记录一下每个数的出现次数。这里还有个小优化可以再记一下每个位置在vector里的下标。 这样子修改不用二分找下标,可以直接swap 阅读全文
posted @ 2025-10-28 19:24 zhuoheng 阅读(5) 评论(0) 推荐(0)
该文被密码保护。 阅读全文
posted @ 2025-10-28 17:21 zhuoheng 阅读(0) 评论(0) 推荐(0)
该文被密码保护。 阅读全文
posted @ 2025-10-26 11:38 zhuoheng 阅读(1) 评论(0) 推荐(0)
摘要: 场上想了挺久才想到做法。 但是其实题不难。 首先发现 \(c_i\) 的数据范围不大,可以考虑枚举 \(x\)。 接着考虑如何每次枚举 \(x\) 完之后,计算当前 \(x\) 的答案。 用一个桶记录一下每个 \(c_i\) 出现的次数。 接着对于一个 \(x\),我们用一个变量 \(j\) 遍历 阅读全文
posted @ 2025-10-22 21:11 zhuoheng 阅读(5) 评论(0) 推荐(0)
摘要: lg scp-s模拟赛T2 场上计数的部分调了很久没过。 主要讲一下场上的思路吧,可能有点乱。 首先可以发现每个节点子树的深度集合可以表示成一个上界和一个下界。 下界是节点本身的深度,上界是节点子树里最深的节点的深度。 然后集合的并就相当于对上界取最小,下界取最大。 那我们先选定 \(b_1\),然 阅读全文
posted @ 2025-10-21 21:57 zhuoheng 阅读(9) 评论(0) 推荐(0)
摘要: dp题,做法有点套路但是一开始没想到。 设 \(dp{_i}_j\) 表示第 \(i\) 位为 \(j\) 的最小花费。 然后直接往下转移就好了。 点击查看代码 #include<bits/stdc++.h> #define fir first #define sec second #define 阅读全文
posted @ 2025-10-10 20:00 zhuoheng 阅读(7) 评论(0) 推荐(0)
摘要: 题意: \(q\) 次询问,每次给一个正整数 \(n\),问有多少个不超过 \(n\) 的正整数 \(i\) 使得 \(i\) 和 \(n\bmod i\) 都是质数。 挺有趣一道题,一开始以为是打表的,然后发现有代码长度限制。 转化一下题意发现求的是有多少对 \(i,j\) 使得 \(n=i\ti 阅读全文
posted @ 2025-10-10 15:22 zhuoheng 阅读(12) 评论(0) 推荐(0)
摘要: 莫队典题了算是。 先转化一下题意。 对 \(a\) 序列做一个异或前缀和。 然后就转化为了查询 \(l-1,r\) 区间内前缀和互相异或能得到 \(k\) 的对数。 直接莫队做完了。 点击查看代码 #include<bits/stdc++.h> #define p_b push_back #defi 阅读全文
posted @ 2025-10-10 15:19 zhuoheng 阅读(7) 评论(0) 推荐(0)
摘要: 一开始读错题意了。 然后以为自己做法假了,实际并没有。 有 \(O(n)\) 做法但我写的是 \(O(n^2)\) 的。 换根dp就行了,每次判断一下能不能成功。 注意如果到最后根是 \(1\) 也是可以成功的。 点击查看代码 #include<bits/stdc++.h> #define p_b 阅读全文
posted @ 2025-10-10 15:15 zhuoheng 阅读(5) 评论(0) 推荐(0)
摘要: 查询区间众数。 先分块然后双指针把每两个块之间的答案算出来。 然后对于每个数在块间的出现次数做一个前缀和方便计算散块的答案。 整块直接得到答案。 散快用前缀和来计算即可。 点击查看代码 #include<bits/stdc++.h> #define fir first #define sec sec 阅读全文
posted @ 2025-10-10 15:11 zhuoheng 阅读(7) 评论(0) 推荐(0)