摘要: 给出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) 编辑