随笔分类 - 题解
摘要:某一道CF染色题的加强版,现在会了
阅读全文
摘要:P3966 [TJOI2013]单词 ###题意 给出一堆的单词,求出每个单词在这堆单词里面出现的次数。 ###思路 建立一颗树,首先找出每个出现的次数,然后从最小面开始进行遍历,从而进行累加,就可以直接求出每一个的个数。 比如:ab,abbcab,这里ab在第二个里面出现了两次,首先就可以直接求出
阅读全文
摘要:E - Sugoroku 3 ###关键 其实也就是正常的投色子问题,从后面转移到前面,只是需要用一个后缀和进行优化,懂期望dp后还是挺好写的。 ###代码 #include <bits/stdc++.h> using namespace std; const int M=2e5+5; #defin
阅读全文
摘要:The Human Equation ###关键 赛后随便猜了一下,竟然过了。只能说当时还是太急了,毕竟对E多少有点害怕。 不行,以后要到能出E的水平 ###代码 #include <bits/stdc++.h> using namespace std; #define int long long
阅读全文
摘要:多个优化,枚举所有的组合
阅读全文
摘要:P2754 [CTSC1999]家园 / 星际转移问题 ###关键 一个是需要建立分层图,但是分层图如何建立? 使用一个while循环,对每次的人数跑一次就可以了 挺奇妙的 ###代码 #include <bits/stdc++.h> using namespace std; const int N
阅读全文
摘要:###关键 用到了有向完全图的一些性质定理,还有就是缩点 可以有两种理解: 1.大的肯定可以,然后判断这个点可不可以,问一定可以的就行了,如果可以把win打死,那就一定可以(度数相同的点,性质是一样的,这个不太懂) 2.找缩点之后入度为0的那个集合,也就是起点,这个就是比较玄学了。内部的边是i*(i
阅读全文
摘要:969. 志愿者招募 ###关键 费用怎么构造的不是很懂,但是是个无源汇上下界可行流,先记着,感觉很不错的题目 ###代码 #include <bits/stdc++.h> using namespace std; const int N=1e4+5,M=1e6+5,inf=1e9; int h[N
阅读全文
摘要:###关键 这种有因果关系的,确实是用图论,但是我是想用topo 最后连边失败 这里是分成多个连通块,每个连通块的点数必须和边数相同 而且如果已经算过贡献,就不在重复计算了 ###代码 //每一个环的点数和边数都必须要相同 //如果这个环已经乘过贡献了,那就不在次计算贡献,直接标记为1就可以了 //
阅读全文
摘要:###关键 就很神奇的思路呀 如果两个数%x相等,那么他们加上某个数余x为0后,还是余数相等,并且并不互质,如果%x为任何数的都有两个,那么就肯定不会满足条件。 因为怎么样都会有那种两个人相等的情况。所以,必须满足有一个的余数是小于2的才可以。 我当时是一点也不会,还是彭少想出来的。 ###代码 #
阅读全文
摘要:###关键 这个题目很值得学习呀! 看着是不能记录所有的状态,但是可以映射一下,然后就是直接线性dp了 ###代码 #include <bits/stdc++.h> using namespace std; const int M=2e6+5; const int mod=998244353; us
阅读全文
摘要:###关键 这美妙的模拟,我写的和屎一样,写了一个小时,都没出来 1.只需要记录前缀就可以了,不需要适用vector进行二分查找 2.只需要看l或r是否为0就可以了,不需要去二分查找 ###代码 //只需要判断前缀或者后缀的题目,直接记录就行了,二分查找好麻烦的,模拟了半天也每出来 #include
阅读全文