摘要: 把这个图缩成圆方树,把方点的权值设成-1,圆点的权值设成点双的size,算 经过这个点的路径的数量*这个点的点权 的和即是答案。 #include <iostream> #include <cstdio> #include <cstring> using namespace std; const i 阅读全文
posted @ 2018-10-02 19:50 SWHsz 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 最小表示法就是一个字符串构成一个环,找以哪个点为开头字典序最小。 然后我们就可以用n2的算法愉快的做啦~实际上有O(n)的做法的,就是用两个指针扫,如果这两个位置的字典序相等,就一起往后,如果某一个大,就把那个指针指到大的那个的后面。 每次至少有一个指针往后移一个,复杂度就是线性的了。 (自己YY的 阅读全文
posted @ 2018-10-02 17:56 SWHsz 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 二分答案。二分n,然后check的时候发现分类讨论一下当前值与K的关系就行了。 论认真读题的重要性。我没看见直接新建一个文件,弃置之前??? 难受 #include <iostream> #include <cstdio> #include <cstring> using namespace std 阅读全文
posted @ 2018-10-02 16:13 SWHsz 阅读(133) 评论(0) 推荐(0) 编辑
摘要: ETT的模板题。 我们把欧拉序标出来, 把入栈视作+,出栈视作-。 它的子树一定是在两个欧拉序中间的。 然后把欧拉序当做一个区间维护,换父亲就把左右两端这个区间挪到它的新父亲的入栈的右边。用splay维护一下就行了。 但是!这个@#$%^&题卡数组版splay????? 但是不卡spaly???(单 阅读全文
posted @ 2018-10-02 15:27 SWHsz 阅读(132) 评论(0) 推荐(0) 编辑
摘要: WA了一万次。。。。 然后发现多输出了一个空格 我#$%^& 启示我们输出字符的时候应该输出ASCII码看一下。。。。 然后本题可以用烤馍片算法,每次匹配完以后看看当前最后一位的nxt数组的值是多少,然后补齐到 lenT 。 下次匹配的时候直接从上次匹配过的最后一个开始匹配就行了。 #include 阅读全文
posted @ 2018-10-02 15:01 SWHsz 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 区间DP,但是卡空间。 n2的就是f[i,j]=sum[i,j]-min(f[i+1][j],f[i][j-1])表示这个区间和减去对手取走的最多的。 但是空间是64MB,就很难受 发现一定是由大区间转移到小区间,区间长度差为1 式子变成 :f[i,i+len]=sum[i,i+len]-min(f 阅读全文
posted @ 2018-10-02 14:56 SWHsz 阅读(168) 评论(0) 推荐(0) 编辑