2015 Autumn Training #0

本文解析了ACM竞赛中A至G题目的解题思路,包括二进制枚举、DFS搜索、网络流等算法的应用,并针对每道题目提供了具体的解题方法。
题目链接:here
A - Calender Colors

水题,二进制枚举暴力。

B - Sleeping Time

dfs搜索
根据题意进行直接相应的搜索即可,注意一下剪枝!
设满足要求的 T 区间为 [L,R] ,所以有两个情况可以直接跳出,即:
if(b<L || a>R) return 0.0;
if(a>=L && b<=R) return 1.0;

D - Marathon Match

从每个人出发来考虑,很容易知道第 i 个人停留j个地点的概率,相应的这个人对应跑完全程的时间就知道了,最后就看要使得这个人第一的概率,也就是其它人消耗的时间都比这个人长,直接暴力枚举人,枚举这个人停留的点,然后加上判断就行了。

E - Reverse Roads

网络流,最大流,把给定的单向边标记为1,同时增加一条反向边,标记为0,流量都记为1,跑完最大流最后看满流的边如果是我们后来增加的反向边则就是需要改变的边的编号。

system(“pause”),尼玛注释掉了都不给跑,整个人都不好!

F - Beautiful Currency

DP.

dp[i][j] 表示第 i 个数以j结尾时最大的变化率,然后去转移就好了!枚举前一个数的值,然后枚举倍数去转移。

不得不说把题目的两个地方看错,一个是以为求和,另一个是这句话一直没看到:the (i+1)-th smallest value is divisible by the i-th smallest value for all i,原来是第 i 小的数啊,还以为是直接是第i个数啊! (如果去掉 smallest value 又该怎么做? QAQ)

G - Rabbit Party

因为当你所选的图不是完全图的时候,对于某些点来讲,它对答案的贡献为0,所以删除这个点并不会减小答案,所以最后我们选定的图一定是一个完全图,直接暴力判断选点取最大值。

我傻逼没有注意到性质一直在写贪心。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值