随笔分类 -  做题总结

摘要:```cpp #include<bits/stdc++.h> using namespace std; long long t; const long long N = 2e5 + 10; long long l,r; void solve() { cin >> l >> r; for(long l 阅读全文
posted @ 2025-03-06 21:14 孤枕 阅读(0) 评论(0) 推荐(0) 编辑
摘要:```cpp #include<bits/stdc++.h> using namespace std; long long t; const long long N = 2e5 + 10; long long n,m,q,tot; long long s[N],c[N],p[N]; struct n 阅读全文
posted @ 2025-03-01 10:44 孤枕 阅读(0) 评论(0) 推荐(0) 编辑
摘要:传送门 容易想到同时维护ai+iaii,但是我一开始的做法是更新后再扫一遍才能更新出答案,这样不仅时间上爆炸,答案还更新不全。其实完全可以push_up的时候更新答案,这样不仅不会浪费复杂度,还不会漏情况 ```cpp #include<bits/stdc++ 阅读全文
posted @ 2025-02-28 18:49 孤枕 阅读(2) 评论(0) 推荐(0) 编辑
摘要:传送门 一开始想法是对的,但是写的丑了导致大数据一直没过去 由于我们只关心所选的区间长度和剩余的点的数量,并不关心具体选了哪些点,所以按照反悔贪心一贯的,用优先队列来储存选了哪些区间和哪些区间未选,剩余点的数量用n,m表示即可。用l,r双指针的方式从首尾选区间固然可以,但是这样就维护了额外的多余的量 阅读全文
posted @ 2025-02-28 15:17 孤枕 阅读(0) 评论(0) 推荐(0) 编辑
摘要:记录解决这道题过程中先后的疏忽 #include<bits/stdc++.h> using namespace std; long long t; const long long N = 2e5 + 10; long long n,a[N],ans; long long Prime[N],tot,p 阅读全文
posted @ 2025-02-28 11:23 孤枕 阅读(2) 评论(0) 推荐(0) 编辑
摘要:传送门 数位DP都长这样吗(bushi 记忆化的维数一定得是能完全确定当前所在状态的,如果当前所在状态不能够由记忆化的各个维度共同确定的,即同一各个维度的值可能对应多个对答案有着不同贡献的状态的话,这个记忆化就会出问题(就相当于DP的维数并不能完整反应转移过程的各个状态一样 就拿这道题举例,在我的写 阅读全文
posted @ 2025-02-27 11:00 孤枕 阅读(2) 评论(0) 推荐(0) 编辑
摘要:传送门 题目大意:给定n个点和m条已有的边,并指定每个点的度数,问能否构建出满足条件的树 思路:首先所有度数之和应该是2(n1) (因为每条边会被算两次)。对于输入的每条边,我们让其对应所需的度数减一,得到的就是我们所构建出的树中,每个点需要我们人为额外加上的度数。此时如果有某个 阅读全文
posted @ 2025-02-18 21:18 孤枕 阅读(2) 评论(0) 推荐(0) 编辑
摘要:传送门 题目大意:给定一棵树和q个询问,每个询问给定v,p,表示一开始有p枚硬币,需要从顶点v走到顶点1,假设当前走第i步,如果i是奇数,那么会朝着顶点1的方向走一步,如果是偶数,可以花费一枚硬币向顶点1方向走一步,否则会等概率地随机向任一当前 阅读全文
posted @ 2025-02-14 19:20 孤枕 阅读(6) 评论(0) 推荐(0) 编辑
摘要:传送门 首先需要用到一个trick:单点正向加入操作变成倒序删除操作。 即我们假定现在有序列1,2,...,n,倒序遍历所给序列,对于当前遍历到的ia[i],我们发现,如果在现有序列(即前面说的1,2,...,n)中找到最后一个为a[i]的位置ji 阅读全文
posted @ 2025-02-11 13:12 孤枕 阅读(10) 评论(0) 推荐(0) 编辑
摘要:传送门 题目大意 给定一个序列和k,每次可以选定序列中两个数,将这两个数的差的绝对值加入序列中,问k能否出现在序列中 思路 问的其实就是k能否被该序列中这n个数线性表示,问题是如何实现。 裴蜀定理:对于两个整数a, b ,存在x,y使得 阅读全文
posted @ 2025-02-07 21:39 孤枕 阅读(2) 评论(0) 推荐(0) 编辑
摘要:传送门 题目大意 给定三个序列,使得a[i]b[j]+a[i]c[z]+b[j]c[z],可以合并成N3个元素的新序列,问此序列中第k大的元素是什么。 思路 发现题目给定的k范围最多是5e5。这里提供两种思路: 第一种,直接二分答案。我 阅读全文
posted @ 2025-02-04 10:40 孤枕 阅读(34) 评论(0) 推荐(0) 编辑
摘要:传送门 题目大意 给定两个长度为N的序列,每次选定两个i,j使得a[i]+b[j],可以合并成N2个数的新序列,问此序列中最小的N个数分别是什么。 思路 我们可以贪心地思考这道题。要求最大的N个数,那么我们首先对a数组和b数组 阅读全文
posted @ 2025-02-04 10:23 孤枕 阅读(3) 评论(0) 推荐(0) 编辑
摘要:传送门 题目大意:(就不说了 思路 要求如果一个人无法操作则这个人获胜,由于这个版本只要求我们输出一个满足题意的点即可,那么我们可以贪心的进行思考。在最理想的情况下,如果我们此时选择了所有权值当中第二大的节点,并且删掉这个节点对应子树之后还有权值最大的节点,那么第二个人只能选择权值最大的节点,再轮到 阅读全文
posted @ 2025-01-29 18:14 孤枕 阅读(24) 评论(0) 推荐(0) 编辑
摘要:传送门 题目大意:给定一个序列h表示房屋高度,规定当(i,j)满足hihj之间没有比hj高的房屋时,在i房屋可以看见j房屋。现给定q个询问li,ri,问ri后的同时能被li和\ 阅读全文
posted @ 2025-01-24 17:33 孤枕 阅读(4) 评论(0) 推荐(0) 编辑
摘要:传送门 通过这道题也是让我对TSP问题有了更深的理解。 首先这道题中给定n个字符串,我们发现n的范围只有20。让我们求这n个字符串作为同一个字符串的子串时,该字符串最短是多少。 我们发现,如果有一个字符串被另一个字符串完全包含,那么它对答案是没有影响的,所以我们可以先用哈希标记掉这些字符串。接下来的 阅读全文
posted @ 2025-01-23 16:06 孤枕 阅读(4) 评论(0) 推荐(0) 编辑
摘要:传送门 题目大意:给定序列,每次操作可以单点修改以及询问每个区间内严格次大值出现次数。 此类区间合并的线段树之前也做过,但是都没有一个固定的写法,导致调了很久都过不了,感觉上是写丑了。对于一个节点要维护多个信息,我们可以用结构体来实现,并且pushup操作,即左右儿子两个区间合并操作,可以直接返回n 阅读全文
posted @ 2025-01-23 14:51 孤枕 阅读(3) 评论(0) 推荐(0) 编辑
摘要:传送门 题目大意 依次给定n个区间,并给定q个数,每个数依次经过这些区间时若在区间中则加1,问最后每个数变成了多少。 做法 显然如果直接模拟的话时间复杂度肯定是会炸的。 首先我们注意到这道题是可以离线处理的,并且对于所有询问的数,我们如果先对他们排好序,在每个数都各自依次经过所给的区 阅读全文
posted @ 2025-01-22 13:07 孤枕 阅读(11) 评论(0) 推荐(0) 编辑
摘要:传送门 题目大意:给定n个数a[1...n]m个数b[1...m],并且给定整数k,求让任意i,j使a[i]&b[j]来替代a[i]后这n个数总和最小。 首先我们看到题目给的m范围非常小,最大只有10,然后又问我们k次操作之后总和的最 阅读全文
posted @ 2025-01-21 23:30 孤枕 阅读(15) 评论(0) 推荐(0) 编辑
摘要:传送门 题目大意:两个人小T和小A分别从A点和B点开始,分别等概率地每次可以往后走12...P12...Q步,小T先走,问小T先走到N位置及以后的概率是多少。 难以想到如何设计状态,由于我们同时要对小T和小A的位置进行维护,所以应该考虑将其分别设为同一个数组的两维来进行维护。 阅读全文
posted @ 2025-01-16 21:52 孤枕 阅读(4) 评论(0) 推荐(0) 编辑
摘要:传送门1 传送门2 这两道题都有个特性,那就是数据范围到了1018,这会让我们想用记忆化搜索或者期望DP的想法望而却退 但是实际上我们可以用map。有人会说,用map那时间上貌似也过不去啊!但是我们发现这两道题当中,我们可以进行的操作都有除法操作,这就有点像势能线段树,时间复杂度实际上 阅读全文
posted @ 2025-01-11 16:40 孤枕 阅读(6) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示
我命令你,喜欢我!