
acm/icpc2016
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/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 评论 -
[acm/icpc2016ChinaFinal][CodeforcesGym101194] Mr. Panda and Fantastic Beasts 后缀自动机
这题解法好多耶听到有后缀自动机的写法,就为此专门补习后缀自动机的知识把第2-n个字符串两两间用符号隔开(这个符号可以相同,只要不是小写字母即可),拼成长串插入后缀自动机扫一遍第一个字符串,和后缀自动机求最长公共字串,失配的时候更新答案后缀自动机也不只有一种方法可以做,可以在第2-n个串任意两个字符串间插入同一个特殊字符以后构建后缀自动机求最长公共字串,可以建广义后缀自动机,原创 2017-01-09 22:37:01 · 1454 阅读 · 0 评论 -
[acm/icpc2016ChinaFinal][CodeforcesGym101194] Mr.Panda and TubeMaster费用流
via. quailty 黑白染色定向 然后相当于每个点找一个后继(就能串成很多个环 每个点拆成左右两个 如果 i 是非必要点,那么左边 i 到右边 i 连一条权值 0 的边,表示我这个点连个自环(相当于就废掉了 其他的边该怎么连就怎么连 跑个最大权匹配,写成费用流就好了#include <bits/stdc++.h>#define INF (1<<29)#define N 1000原创 2017-04-26 15:57:40 · 775 阅读 · 0 评论