摘要: bitset是什么 bitset是一个神奇的库,经常可以在你觉得过不了的时候帮你优化掉一个64或者32的常数,帮你成功卡过去 定义: bitset < 10 > s 但是要注意,bitset中下标和我们理解的数字顺序是相反的,例如当你把s用一个字符串赋值的时候: string st = "10010 阅读全文
posted @ 2021-07-18 21:52 cminus 阅读(62) 评论(0) 推荐(0) 编辑
摘要: 两种写法,主要是复杂度的证明上比较有趣 1. 并查集+BFS 对于每个点,最多只会进入队列一次,这部分的复杂度是O(n) 每个点最多会在 for (int i = find(1); i <= n; i = find(i + 1))这段话中被访问 \(edge[i].size() + 1\) 次,因为 阅读全文
posted @ 2021-06-25 21:53 cminus 阅读(25) 评论(0) 推荐(0) 编辑
摘要: 2021.6.11 luogu3567 主席树/随机化 2021.6.11 luogu3459 树状数组+差分dfs序 2021.6.17 luogu3437 二维线段树 (※) 2021.6.17 luogu3556 分层图BFS(奇偶分层)(※) 2021.6.19 luogu3520 欧拉回路 阅读全文
posted @ 2021-06-24 15:33 cminus 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 来自某个废物时隔n天的补题 我怎么这么菜.jpg 有了B1的经验,我们很容易想到对于长度奇偶的分类 首先明确两件事情(根据B1): 回文时,偶数后手必胜 回文时,奇数中间是1或者有n-1个1的时候后手必胜,中间为0且不是n-1个1时时先手必胜 基于上面两点,很容易扩展到这道题(真的吗?) 对于长度为 阅读全文
posted @ 2021-05-31 17:11 cminus 阅读(77) 评论(0) 推荐(0) 编辑
摘要: 看到题目的时候就感觉是一个费用流 但是怎么想都想不出来怎么做(太菜了) 最大的问题大概是我把这个网格看成了若干个点,而没有思考它们在行列上的关系 对于两个R限制,每次一定有一个限制是基于前一个限制的,例如R 1 10和R 3 5,3>1,所以3行及之后的点一定是先满足前一个条件,再满足这一个条件,基 阅读全文
posted @ 2021-05-20 16:33 cminus 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 是一道比较神仙的数据结构(我自己肯定想不出来) 这个查询其实是比较难处理的,对于一段询问区间[l, r],每一个矩形和其他的都是可能相互联系的 但是可以注意到区间的范围非常小,是[0, 2000]之间,所以可以考虑对每一个1×1大小的方格进行处理,可以发现方格的数量是2000*2000个,是一个可以 阅读全文
posted @ 2021-05-15 14:20 cminus 阅读(395) 评论(0) 推荐(0) 编辑
摘要: 场上糊了一个小时都没糊出来(我甚至写了个假算法前半个多小时还没找到反例) 因为题目最后要求我们得到的是一条链,删除的边的数量和加边的数量一样多,所以我们要让删除的边最少。又因为我们要得到的一条链肯定是由多条组合起来的,而原树是由多条链构成的,我们最少要删除链数-1条边,那么问题转换成了如何把树划分成 阅读全文
posted @ 2021-05-10 19:31 cminus 阅读(90) 评论(0) 推荐(0) 编辑
摘要: 可以发现可以构建出的是一棵树,且树的深度在20层及以内 刚开始想对于每条路径跑最短路,然后都跑一边得出答案,但是发现因为路径可以重叠,所以后面求的路径会修改一些公共路径的最短路,所以不能这么求 考虑什么是不变的,一个点到自己的最短路一定是0,所以从每个点出发,跑它到所有子节点的最短路,这个路一定是这 阅读全文
posted @ 2021-05-10 17:00 cminus 阅读(511) 评论(0) 推荐(0) 编辑
摘要: 我到底是多菜才能这道题都做不出来啊 似乎是t神几分钟就写出来的题目 这道题的重点在于求长度为k的最短路,我的误区在于我一直想用各种最短路算法来解决,但是完全不需要 显然这种限制具体步数的问题可以用DP或者说是分层图来解决,当然从本质上来说分层图就是一种DP,考虑dp[k][i][j]表示从(i, j 阅读全文
posted @ 2021-05-07 21:20 cminus 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 处理了一年的边界问题 #include <bits/stdc++.h> using namespace std; const int N = 2e5 + 10; #define fi first #define se second #define sz(v) ((int)(v).size()) #d 阅读全文
posted @ 2021-03-13 16:17 cminus 阅读(133) 评论(0) 推荐(0) 编辑