Educational Codeforces Round 140 (Rated for Div. 2)(A,B,D)

太久没写博客了,感觉做的题不自己写一遍思路总还是有点问题。。。

又到了新年啦,cf的新年特效爱了爱了

A. Cut the Triangle

给出三角形的三个顶点坐标,问是否可以使用水平或者竖直线从任意一个顶点将三角形划为两部分。

思路:易得知,只有直角三角形不能满足条件,而且必须是直角边与坐标轴垂直的直角三角形,根据性质判断即可。

AC Code:

B. Block Towers

给出一个数组,对于数组中的两个数i,j,只有a[i] < a[i]时,可以将a[i] + 1, a[j] - 1,问这样操作任意次,a[1]能达到的最大值是多少。

思路:因为是对于a[2] ~ a[n]操作,为了每个数最大化利用,我们将这一段内的数升序排序,直接计算即可。

AC Code:

D. Playoff

给出1 ~2^n的排列,每次两两对战,给出n次比赛的结果,0表示数字小者胜,1表示数字大者胜,问n次对战后,哪些数字可以胜出。

思路:容易想到,最后胜出的一定是连续的数字中的一个,所以可以考虑解决这个区间的两个极值。对于极小值x,若遇见0的情况,那需要一个大于x的值对战,而这个值能到此次对战需要更多小于它的数字,所以会用到大于x的一些值;反之,在遇见1的情况,那需要一个小于x的值,且这个值在之前所有结局为1的条件下胜出,则会用到小于x的部分数字。可以假设之前结局为1的回合是cnt,那么一共需要2^cnt个能力低者。对于极大值,与此分析类似。

AC Code:

os:思维思维!想明白了还是挺好写的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值