[codeforces/edu31]总结
链接:http://codeforces.com/contest/884
A题:
求86400-ai的前缀和,找到第一个大于等于给定t的即可。
B题:
任意相邻两段之间必然有一个0,然后算一下至少的长度,然后看有多少多余的长度(可以为负数),多余的长度不等于0就是NO。
C题:
由题意可知,线路是若干个简单环的并。所以最好的操作就是合并两个最大的环。
D题:
倒过来想,把分裂的过程看成合并的过程,基本上就是哈弗曼树的过程。只做一点改动:奇数堆的时候合并最小的3个,偶数堆的时候合并最小的2个。
E题:
卡空间。1的连通块的个数等于1的个数减去做并查集merge的次数。每个点只跟左边和上边merge,然后滚动一下就可以了。
F题:
网络流,构图很巧妙。做排列,每种字母看做一个点,每个对应位置看做一个点。这样把哪个字母放到哪个位置,就可以看做每个字母流到对应位置点的最小费用流。