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

本文解析了CodeForces725A-D四道题目的解题思路,包括字符通路构造、航班服务优化算法、特殊字符串处理及贪心策略实现等。

CodeForces 725A:

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

同理最右;

CodeForces 725B:

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

思路:

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

CodeForces 725C:

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

CodeForces 725D:

思路:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值