CodeForces Canada Cup 2016【A,B,C,D】

CodeForces 725A:

思路就是如果“最左”不是‘>’这个了,那么这个右边的一定不可能到达左边了;

同理最右;

CodeForces 725B:

有两个空姐,一个从第1行开始照顾1,2两行;另一个从第二行开始照顾3,4两行,对每个乘客,给他东西需要1个单位时间,换一行需要一个单位时间;然后两个空姐同时处理,对每一行都是fed,abc,然后换行,两个空姐同时处理完两行以后,跳两行继续处理;

思路:

我就是先把处理了几个乘客算出来,然后再计算一个跨越时间;

CodeForces 725C:

题意:给你一个27大写字母的字符串,每个字母至少出现一次。要你能否构造一个2*13的图,保证给出的字符串是条通路,图通路的定义是:相邻或对角的两个能相通。
思路:根据题意,字符串肯定有一个大写字母出现两次,而这个字符就是关键,我们需要通过这个字符两次(记为G),将G的前后两个位置找到,把两个位置中间的字符放在尾部构成个环路,可以确定到中间部分的位置,在顺序排入剩下的字符。

CodeForces 725D:

思路:

一看就是贪心对吧。。。= =、
直观感觉就是存在一种情况,比我大的我最好消去一些,然后我消去时花费气球后的数量使得比我新增的大的数量出现少一点;
处理就是开两个优先队列,一个存一下比我大那些种类,按能使他飘走花费气球数量从小到大排序,每次取最小搞搞,如果不能搞了就break掉;
另一个存比他小的那些种类,按照数量从大到小排序,我每次处理后的后果就是减少了气球,然后处理后一旦比本来小的少了,还要把小的压到大的那里去;
每次更新一下最小值就好了;

posted @ 2016-10-24 21:03  see_you_later  阅读(119)  评论(0编辑  收藏  举报