上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 21 下一页
摘要: 给出两个长度为n的序列。这两个序列的数字可以连边当且仅当它们不同,权值为它们的绝对值,求出这个二分图的最小权值完全匹配。没有输出-1. n<=1e5.用KM会TLE+MLE. 如果连边没有限制的话,将两个序列排序一下显然就得到最优解了。 考虑限制。则需要将排序后一些项交换。可以证明最优解最多交换距离 阅读全文
posted @ 2017-04-25 20:56 free-loop 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 用堆模拟题目中的操作即可。 # include <cstdio> # include <cstring> # include <cstdlib> # include <iostream> # include <vector> # include <queue> # include <stack> # 阅读全文
posted @ 2017-04-25 20:10 free-loop 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 把一对石子堆看出一个子游戏。打出子游戏的sg表找规律。。 这个规律我是一定找不出来的。。。 对于i,j,如果 (i-1)%pow(2,k+1) < pow(2,k) (j-1)%pow(2,k+1) < pow(2,k) 那么最小的k值就是sg值。 # include <cstdio> # incl 阅读全文
posted @ 2017-04-25 18:38 free-loop 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 很有意思的一道题啊。 求两个序列的最大公共子序列。保证每个序列中含有1-n各5个。 如果直接LCS显然是TLE的。该题与普通的LCS不同的是每个序列中含有1-n各5个。 考虑LCS的经典DP方程。dp[i][j]=dp[i-1][j-1]+1.(a[i]==b[j])。 dp[i][j]=max(d 阅读全文
posted @ 2017-04-25 16:23 free-loop 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 求能被理解的最长前缀。 很显然的dp。令dp[i]=true,表示前缀i能理解。否则不能理解。那么dp[i+len]=dp[i]=true,当s[len]能匹配str[i,i+len]. 由于模式串长度为10.且匹配过程可以用字典树加速。 所以复杂度就是O(10*m*len). # include 阅读全文
posted @ 2017-04-25 15:21 free-loop 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 给出n个点的无向图,每条边有两个属性,边权和代价。 第一问求1-n的最短路。第二问求用最小的代价删边使得最短路的距离变大。 对于第二问。显然该删除的是出现在最短路径上的边。如果我们将图用最短路跑一遍预处理出所有最短路径。 然后我们要删除的边集一定是这个图的一个割。否则最短路径不会增加。即求此图的最小 阅读全文
posted @ 2017-04-24 23:02 free-loop 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 如果把每堆巧克力看做一个子游戏,那么子游戏会互相影响。 如果把全部堆看做一个子游戏,那么状态又太多。 如果把每一个单独的巧克力看成一个子游戏的话,那么状态很少又不会互相影响。 令sg[i]表示一个巧克力在第i堆的sg值。那么sg[i]=mex(sg[j]^sg[k])(k>=j>i);边界状态为sg 阅读全文
posted @ 2017-04-24 20:46 free-loop 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 对于三个正方形的位置一共有六种情况。 预处理出(i,j)左上角,左下角,右上角,右下角区域内最大权值的正方形。 枚举分界线更新答案。 刚开始想了一个错误的DP也是蠢啊。 #include<set> #include<map> #include<ctime> #include<queue> #incl 阅读全文
posted @ 2017-04-24 20:22 free-loop 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 求出所有人撤离的最短时间。由于每扇门只能通过一次,所以不能简单用bfs来搞。 显然答案是有单调性的,考虑二分,问题变成了判断时间x所有人能不能撤离。 考虑最大流。对于每扇门,每个时间通过的人数最多为1,所以将每扇门按时间x来拆成x个点。连边(time/i,1,t)来限制流量。 另外对于每个人m,如果 阅读全文
posted @ 2017-04-24 17:03 free-loop 阅读(250) 评论(0) 推荐(0) 编辑
摘要: 应该是一道很水的题吧。。。 显然可以用树链剖分解决这个问题,虽然不知道多一个log会不会T。但是由于问题的特殊性。 每次修改都是将边权为1的边修改为0,且询问的是点i到根节点的路径长度。 令点i到根节点的路径长度为w[i],显然初始时w[i]=dep[i].考虑修改边为(u,v),那么令u为深度大的 阅读全文
posted @ 2017-04-22 19:48 free-loop 阅读(141) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 21 下一页