09 2022 档案

摘要:突然意识到正式赛这个版块没有更新过什么,就打算写一个赛后总结 开场跟榜开 C,跟队友讨论了好一会儿,20 分钟才意识到和叶子结点有关,qgn 上机,没看代码,觉得没啥问题,结果有特判 1 没想到,小 wa 一发 接着开了 H, 其实我一早就看到这个题了,就是最近不太喜欢读题,看到 阅读全文
posted @ 2022-09-23 14:30 dgsvygd 阅读(84) 评论(0) 推荐(0) 编辑
摘要:Getting Confidence 费用流 经典费用流模型,先建立 nn 个点,来模拟一行,一行中的连接边流量为 1,费用为 0,源点连接每一行的第一个点 对上述生成的点中,同一列连接到一个新的点,流量为 1,费用为 a[i][j],然后该点连接一个流量为 1,费用 阅读全文
posted @ 2022-09-23 14:13 dgsvygd 阅读(96) 评论(0) 推荐(0) 编辑
摘要:最近真的被很多事情烦死了,实习难,就业难,考研难,还不知道大四要不要继续打好(现在热情已经损耗的差不多了,想退役了),队友又摆烂(等退役小文章再吐槽),学校课程又乱七八糟(实验课什么入门都没有直接就地狱模式,那老师啥都不讲) 今天的烦躁居然连喝奶茶都压制不下去了,要是十年前的我知道现在是这么一个焦虑 阅读全文
posted @ 2022-09-22 18:26 dgsvygd 阅读(57) 评论(1) 推荐(2) 编辑
摘要:Denouncing Mafia 贪心 + 线段树 + dfs 序 || 贪心 + 长链剖分 考虑贪心地每次拿能染色最多的点,每拿走一个点,都会影响其他点的值,如果一个点被染色,则他子树的所有点的贡献值都会 - 1,因此考虑用线段树 + dfs 序的方式,对树上进行区间修改,每次询问所有点的 阅读全文
posted @ 2022-09-22 14:47 dgsvygd 阅读(35) 评论(0) 推荐(0) 编辑
摘要:Tree Requests 判断 Vi 的子树中,深度为 hi 的结点上所带有的字符,能否组成一个回文串 启发式合并 维护所有深度上不同字符的数量,并且维护其奇数字符出现的次数 如果若干个字符能组成一个回文串,必然有: 偶数个字符,且不出现奇数次数的字符 奇数个字符,只能出现一个奇数次数 阅读全文
posted @ 2022-09-19 00:32 dgsvygd 阅读(35) 评论(0) 推荐(0) 编辑
摘要:Tree and Queries 询问 Vj 的子树中,有多少种颜色出现了 Kj 次 启发式合并 最直接的,树上启发式合并的同时维护颜色出现的次数,然后再拿一个数组记录一下出现了 i 次的颜色数量,储存在 sumi 对于这个 sum 的维护,一开始觉得直接套个树状数组上去, 阅读全文
posted @ 2022-09-19 00:26 dgsvygd 阅读(14) 评论(0) 推荐(0) 编辑
摘要:Blood Cousins Return 启发式合并 在跑启发式合并的同时,对每个深度都维护一个 set,就可以自动去重并计算有多少种不同的字符串 #include <iostream> #include <cstdio> #include <algorithm> #include <vecto 阅读全文
posted @ 2022-09-19 00:14 dgsvygd 阅读(30) 评论(0) 推荐(0) 编辑
摘要:Blood Cousins 树上启发式合并 || dfs 序 + 二分 树上启发式合并就直接根据深度来合并起来就好了,答案就是问的那个点的 k 级祖先下,深度与问的那个点的儿子数量 - 1 对深度进行一个启发式合并就好了 好像还可以长链剖分? 注意该题是森林 #include <iostre 阅读全文
posted @ 2022-09-17 23:25 dgsvygd 阅读(34) 评论(0) 推荐(0) 编辑
摘要:Unique Username 模拟 搜索 全排列模拟,直接搜索 #include <iostream> #include <cstdio> #include <map> #include <string> using namespace std; const int maxn = 20; map< 阅读全文
posted @ 2022-09-14 14:13 dgsvygd 阅读(47) 评论(0) 推荐(0) 编辑
摘要:Best Concatenation 贪心 - 相邻交换 考虑两个相邻位置的元素,如果进行交换,会对答案造成怎样的影响 假设现有一个排列,我们拿出其中两个相邻项 AB 考虑 ...+A+B+......+B+A+... 的顺序对答案造成了什么影响 阅读全文
posted @ 2022-09-14 13:41 dgsvygd 阅读(59) 评论(2) 推荐(0) 编辑
摘要:Exactly K Steps 树的直径 + 离线 考虑离每个点最远的点是哪个点,根据树的直径相关内容,距离该点最远的点一定是直径两个端点之一,理解上的话可以考虑画一个图,直径上的所有点在一条直线上,然后再花分支,如果其中一个点的最远距离的点,不是直径上两个端点的话,显然会有新的更长的直径产生 因为 阅读全文
posted @ 2022-09-05 18:01 dgsvygd 阅读(46) 评论(0) 推荐(0) 编辑
摘要:Erasing Vertices 2 二分 || 贪心 二分的做法就二分答案,然后检查一下能否删除,像拓扑一下跑一下就行 #include <iostream> #include <cstdio> #include <algorithm> #include <vector> #include <qu 阅读全文
posted @ 2022-09-03 23:33 dgsvygd 阅读(98) 评论(0) 推荐(1) 编辑
摘要:Madoka and The Corruption Scheme 组合数 + 思维 + 贪心 首先要思考一开始要如何摆放才是最优秀的 按照完全二叉树(根就是最后赢的那个),给所有的点赋予权值,代表需要转换多少条边,才能使得这个点的数字被选上 显然假设当前点的权值为 x,该点的其中一个节点权值必然 阅读全文
posted @ 2022-09-03 17:14 dgsvygd 阅读(123) 评论(0) 推荐(1) 编辑
摘要:Madoka and Formal Statement 思维 如果合法,说明 aibi,因此也可以认为 bi 就是 ai 最后能变成的最大值 根据题意操作,只有 aiai+1 的情况,才能使 ai+1,因此 ai 的理论最大值应该是 阅读全文
posted @ 2022-09-03 01:25 dgsvygd 阅读(227) 评论(0) 推荐(0) 编辑
摘要:Madoka and Underground Competitions 构造 在一行里,如果选定了其中一个位置是 X,接下来就直接往左和往右每 k 个放置一个 X 就行了 每一行的初始位置根据一开始的那个 X,斜着一个方向铺满,即可做到每一行都存在一个 X | . | X | . 阅读全文
posted @ 2022-09-03 01:16 dgsvygd 阅读(156) 评论(0) 推荐(0) 编辑
摘要:Madoka and Strange Thoughts 唯一分解定理 gcd(a,b)=p1min(ak1,bk1)p2min(ak2,bk2)... $$ lcm(a, b) = p_1^{max(ak_1, bk_1)} * p_2^{max( 阅读全文
posted @ 2022-09-03 01:00 dgsvygd 阅读(300) 评论(0) 推荐(1) 编辑
摘要:Maximum AND 贪心 从高位开始,尽可能地让 a 中该位为 0 的 和 b 中该位为 1 的配对在一起,换句话说,可以让 a 由小到大排序,b 由大到小排序 如果当前位最终是 1,则继续该过程 如果当前位最终是 0,则说明失配,考虑将这一位全部置为 1阅读全文
posted @ 2022-09-02 14:24 dgsvygd 阅读(33) 评论(0) 推荐(0) 编辑
摘要:Plus and AND 贪心 从高位开始逐位枚举,如果当前位能够在 k 的代价内将所有数字都变成 1,则认为结果的当前位是 1,如果凑这一位利用了低位的 1,则要将其全部置为 0 重复这个过程 #include <iostream> #include <cstdio> #inc 阅读全文
posted @ 2022-09-02 14:15 dgsvygd 阅读(22) 评论(0) 推荐(0) 编辑
摘要:【模板】边双连通分量 边双的数量 tarjan 割边 出现一个桥就会把分割出一个连通块,因此边双的数量就是 桥的数量 + 原本块的数量 #include <iostream> #include <cstdio> #include <algorithm> using namespace std; co 阅读全文
posted @ 2022-09-02 10:18 dgsvygd 阅读(32) 评论(0) 推荐(0) 编辑
摘要:Hedge Mazes 判断两点之间是不是只有唯一一条简单路径 tarjan 割边 如果两点之间仅有一条简单路径,说明如果将路径上的一条边割掉,则两点之间不连通,换句话说,这条最短路径上的所有边都是割边 因此考虑找出所有的割边,用割边来跑一次并查集 #include <iostream> #incl 阅读全文
posted @ 2022-09-02 09:53 dgsvygd 阅读(136) 评论(0) 推荐(0) 编辑
摘要:Caocao's Bridges tarjan 割边 直接跑权值最小割点 坑: 如果图本身不连通,则输出 0 如果图连通,且最小割边为 0,应该输出 1(至少有一个人去炸) #include <iostream> #include <cstdio> #include <algorithm 阅读全文
posted @ 2022-09-02 09:51 dgsvygd 阅读(12) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示
主题色彩