[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题:

  网络流,构图很巧妙。做排列,每种字母看做一个点,每个对应位置看做一个点。这样把哪个字母放到哪个位置,就可以看做每个字母流到对应位置点的最小费用流。

posted @ 2017-10-31 16:46  ACMsong  阅读(135)  评论(0编辑  收藏  举报