
中等难度练习题2
HbFS-
di4CoveRy
展开
-
[acm/icpc2016北京赛区][hihocoder1430] A Boring Problem 推公式
无脑推公式题 一开始推出来O(nk2) O(nk^2) 的超时了,后来把复杂度降低到O(nk) O(nk) 才跑过去对于每个答案ans[i]ans[i],存在表达式 ans[i]=∑ij=1F[j][i] ans[i] = \sum_{j=1}^i F[j][i] 令s[i]s[i]为前缀和 F[j][i]=(s[i]−s[j−1])k F[j][i] = (s[i]-s[j-1])^k原创 2017-01-01 22:36:06 · 1601 阅读 · 0 评论 -
[acm/icpc2016北京赛区][hihocoder1424] Asa's Chess Problem 有上下界的费用流
将行列分开来考虑对于每一组交换,若对应点同色那么这组交换是没有意义的。我们只考虑两组交换是不同色的建图1、超级源连向所有的行和列,上界=下界=原本处在这一行的点数,费用为0;2、对于每组交换i,j,若i为黑色,那么点i连向j,上界为1下界为0,费用为1;3、所有的行和列连向超级汇,上界和下界为读入的限制,费用为0;可行流判断是否有解,若有解则最小费用即答案原创 2016-12-26 14:21:12 · 1184 阅读 · 0 评论 -
[acm/icpc2016ChinaFinal][CodeforcesGym101194] Mr. Panda and Strips 暴力+剪枝
神棍剪枝剪过去#include #include #include #define N 1050using namespace std;int F[100*N],a[N],v[N],tr[N],n,ans;inline int rd() { int r; scanf("%d",&r); return r; }inline void ut(int &x,int y) { x =原创 2016-12-26 17:37:27 · 1553 阅读 · 0 评论 -
[acm/icpc2016香港赛区][Kattis] Slim Cut 支持撤销的动态规划(?)
将边权从大到小排序,若一条边属于两个并查集,则看剩下的并查集划分成两个集合的中小集合最大是多少,用这两个东西来更新答案。在同一个并查集里的点集不能被划分到两个集合中至于判断划分成两个集合的中小集合最大是多少,如果用一个朴素的背包动态规划F[i]表示能不能凑到价值为i,那么单次操作是n^2的,总时间代价n^3,显然超时。考虑任意两个相邻的动态规划,都是将两个元素合并成一个元素。但是上原创 2016-12-21 22:58:36 · 1119 阅读 · 0 评论 -
[Codeforces div1] Round 739C. Alyona and towers 线段树+差分数组
这题应当有很多做法拿到题目以后有很多想法,光是不同的线段树就有两三种,而且我觉得分块卡一卡也是能卡过去的。最后写了最简单的方法,代码比起其它的解法都短很多。考虑查分后的数组,原问题变可以转化成求最长的一段正数后紧接一段负数的长度。若用折线将这串数字连接起来,那么每一段“合唱队形”数便可以表示成两个波谷之间的距离。线段树维护所有的波谷,维护最大的两个波谷之间的距离。修原创 2016-12-20 19:35:57 · 572 阅读 · 2 评论 -
[acm/icpc2016ChinaFinal][CodeforcesGym101194] Mr. Panda and Fantastic Beasts 后缀自动机
这题解法好多耶听到有后缀自动机的写法,就为此专门补习后缀自动机的知识把第2-n个字符串两两间用符号隔开(这个符号可以相同,只要不是小写字母即可),拼成长串插入后缀自动机扫一遍第一个字符串,和后缀自动机求最长公共字串,失配的时候更新答案后缀自动机也不只有一种方法可以做,可以在第2-n个串任意两个字符串间插入同一个特殊字符以后构建后缀自动机求最长公共字串,可以建广义后缀自动机,原创 2017-01-09 22:37:01 · 1454 阅读 · 0 评论