01 2025 档案
摘要:传送门 题目大意:(就不说了 思路 要求如果一个人无法操作则这个人获胜,由于这个版本只要求我们输出一个满足题意的点即可,那么我们可以贪心的进行思考。在最理想的情况下,如果我们此时选择了所有权值当中第二大的节点,并且删掉这个节点对应子树之后还有权值最大的节点,那么第二个人只能选择权值最大的节点,再轮到
阅读全文
摘要:传送门 通过这道题也是让我对TSP问题有了更深的理解。 首先这道题中给定n个字符串,我们发现n的范围只有20。让我们求这n个字符串作为同一个字符串的子串时,该字符串最短是多少。 我们发现,如果有一个字符串被另一个字符串完全包含,那么它对答案是没有影响的,所以我们可以先用哈希标记掉这些字符串。接下来的
阅读全文
摘要:传送门 题目大意:给定序列,每次操作可以单点修改以及询问每个区间内严格次大值出现次数。 此类区间合并的线段树之前也做过,但是都没有一个固定的写法,导致调了很久都过不了,感觉上是写丑了。对于一个节点要维护多个信息,我们可以用结构体来实现,并且pushup操作,即左右儿子两个区间合并操作,可以直接返回n
阅读全文
摘要:传送门 题目大意 依次给定 个区间,并给定 个数,每个数依次经过这些区间时若在区间中则加1,问最后每个数变成了多少。 做法 显然如果直接模拟的话时间复杂度肯定是会炸的。 首先我们注意到这道题是可以离线处理的,并且对于所有询问的数,我们如果先对他们排好序,在每个数都各自依次经过所给的区
阅读全文
摘要:传送门 题目大意:两个人小T和小A分别从A点和B点开始,分别等概率地每次可以往后走 , 步,小T先走,问小T先走到N位置及以后的概率是多少。 难以想到如何设计状态,由于我们同时要对小T和小A的位置进行维护,所以应该考虑将其分别设为同一个数组的两维来进行维护。
阅读全文
摘要:传送门1 传送门2 这两道题都有个特性,那就是数据范围到了 ,这会让我们想用记忆化搜索或者期望DP的想法望而却退 但是实际上我们可以用map。有人会说,用map那时间上貌似也过不去啊!但是我们发现这两道题当中,我们可以进行的操作都有除法操作,这就有点像势能线段树,时间复杂度实际上
阅读全文
摘要:传送门 这道题要求我们求[l,r]范围内所有的“蛇数”,即这个数的第一位严格大于它的其他位的数。 看到数据范围并且发现答案区间可加减性联想到数位DP。其实有点类似模板题,与经典的数位DP题类似的,我们需要判断前导0,需要判断当前枚举的数是否是贴着所给的数,在此题中如果想要记忆化的话,还需要加两个量,
阅读全文
摘要:传送门 第一次接触到倍增思想是用来求lca时,为了避免一层一层往上爬浪费时间复杂度。再后来就是区间DP中一小类问题或者是部分图上问题可以用倍增来优化。 那么这道题其实可以看作图上问题来使用倍增优化。看到这道题的数据范围,K达到了 量级,这让我们不得不思考log级别往下复杂度的算法
阅读全文
摘要:传送门 这道题要求我们对于非常多的询问回答[l,r]、[L,R]这样两个区间内A、B数组中各个数的出现次数是否相同。 看到这道题似乎想到了刚开始学编程的时候就想过的一个问题(bushi,那就是我能不能直接用,例如说这段区间和是否相同,或者说这段区间乘积之类的是否相同来判断这个区间各个数出现次数是否相
阅读全文
摘要:传送门 题目大意:给定两个数l,r,试求l~r中选三个数a,b,c,使得 的值最大。 有关此类异或最大的题目,首先想到的是确定最高位,因为假如说异或后二进制下k位置为1,那么此时答案就已经比k位置不为1,而k以后的位置都是1的情
阅读全文
摘要:传送门 首先看到这道题,我们发现想要求收集K个卡牌的期望开包数,必须要先求出每个包开出0~n张卡各自的概率,于是预示着这道题将要进行两次概率DP。 首先我们求每个包开出0~n张卡各自的概率。这个很好求,我们假设f[i][j]表示前 张卡中开出 张卡的概率,那么显然有: \(f[i][
阅读全文
摘要:传送门 题目要求n个数中选k个数异或起来最大,我们想到字典树中最大异或和这一经典问题,但是很明显字典树只能解决任选两个数的最大异或,而此题是任选k个,那我们走投无路只能考虑爆搜。 首先可以很容易写出一个暴力的搜索: void dfs1(long long pos,long long sum,long
阅读全文