摘要: 首先这道题如果除去操作4,操作1,2,3都是线段树的基础操作。操作4可以用可持久化来解决。 把二维的数据拉开来,每个点给一个 \((i-1)\times{m}+j\) 的编号。 这样子就得到了一个一位数组,而操作3的操作刚好可以转化成区间操作。 接下来就是裸的可持久化线段树,注意一下懒标记下放的细节 阅读全文
posted @ 2026-02-05 18:10 zhuoheng 阅读(1) 评论(0) 推荐(0)
摘要: 水题一道。n倍经验懒得写,放一道:P3567 完全参考的P3567的写法即可,在query当中修改一下查询部分即可。 左子树大小足够即为答案,若无答案则看右子树是否大小足够,若依然无答案则输出-1 #include<bits/stdc++.h> #define ll long long #defin 阅读全文
posted @ 2026-02-05 18:09 zhuoheng 阅读(0) 评论(0) 推荐(0)
摘要: 这道题是暑假写的。但是当时数据结构学傻了,写了个莫队。 然后刚刚发现没过,连忙重新看题。 想了想发现跟可以跟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 阅读(6) 评论(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 阅读(8) 评论(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 阅读(11) 评论(0) 推荐(0)