首页 > 代码库 > Codeforces Round #275

Codeforces Round #275

483 A. Counterexample

做题感悟:这题开始一看数据范围就暴力了一下,虽然过了,但是一看题解顿时无语,想的太少了。

解题思路:

                 如果区间范围小于 3  或者等于3且第一个数为奇数则输出 -1 ,否则的话,输出从第一个偶数开始的三个数就可以了。为什么可以这样呢?因为相邻的两个数一定互素,偶数的话一定不互素。

代码~~>

483 B. Friends and Presents

做题感悟:这题做的时候一不小心看到旁边的标签,结果就轻松AC了,看来以后要拉到某个地方再做。

解题思路:

                 先来张图:

 

              这题二分好想 ,但是判断二分的值是否合法不好判断 。如上图( A代表 x 的倍数,B 代表 x 与 y 的共同的倍数 ,C代表 y 的倍数 ),假设你二分到  M ,首先去除 x * y  的倍数,x * y  的倍数都不能用给,然后 y 的倍数应该给 x 的那个人,同理 x 的倍数给 y 的那个人,这样才做到不浪费。这样以后如果第一个人从第二个人的倍数得到的数的个数还不能满足要求,就从 M -  A - B - C 中取 cnt1  - C ,否则取 0 ,同理 第二个人也这样,那么,最后只要判断 M - A - B - C 是否大于等于 两个人在从对方拿到若干个数后还需要的数的总个数。剩下的就是二分了。

代码~~>


Codeforces Round #275