acm新生集训第一周比赛题解
第一题:吃鸡蛋星人吃鸡蛋
题解:签到题,按题意模拟每天吃的鸡蛋数相加即可,但是需要注意的是和的类型应该是long long类型的
第二题:沛奇之战
题解:难度适中,思维题,其实只有两种情况,一种是沛沛作弊的情况下两者的时间差,另一种就是沛沛不作弊当沛沛作弊且先到终点时
而我们只需要判断什么时候沛沛可以作弊就行了,而这个判断首先沛沛速度大时,无法作弊,当沛沛速度小时,只有,奇奇离终点的距离大于k时,才能作弊。
(附:本来以为这题的ac率会很高,但是可能因为修改题面的时间有些延迟,导致可能对题意没有理解,出题人背锅。。。)
第三题:决战到天亮
题解:签到题,有一个小坑,貌似坑了不少人,只需要n>=abs(a)+abs(b),但是如果n-abs(n)-abs(m)如果是奇数,就不可达,可以画个图简单推一下
第四题:你听,那猹又在咬瓜了
题解:签到题,但是因为一些出题人的操作,导致数据有大锅。赛后可以在problem里提交一下
在这里说下操作吧,用一个数组来存当前编号西瓜的是否存在,被猹咬后,变成0,然后输出还是1的编号就行了
第五题:嘤嘤怪的夜袭
题解:思维题,但没想到没人ac
如果一个数是3的倍数,那么这个数的各个位相加应该也是3的倍数
按字符串遍历,首先当一个数是3的倍数时,划分,如果不是则继续遍历到第二个数字,结合起来如果是,则划分。
否则继续遍历到第三个数,这时候一定会使得这三个数组合起来一定是3的倍数,划分。
(附:如果没来听课,且对这个规律有所疑问的,可以问)
第六题:头发渐渐沛沛
题解:压轴题! ! !
(附 :拓展欧几里得 https://www.cnblogs.com/hadilo/p/5914302.html )
首先说正解,通过exgcd判断 是否有解,即如果c%gcd(a,b)==0则有解,如果有解则将不定方程代入二元二次方程中进行化简。
具体步骤:先进行消元 代入方程中,可得 然后进行化简,最后得到
这不就是一个一元二次方程的最小解问题
然后根据高中知识可得对称轴为
最后在对称轴两边找满足的解,即可,找到即为最小解
然后说下暴力解法 先假设一个最小值minn为1e18+7,直接暴力跑x,让x从-10^5到10^5开始跑,首先如果满足不定方程有解,则代入算一个值,如果这个值小于minn,则minn=这个解,然后跑完之后如果minn==1e18+7,则没有不定方程的解,输出bold,否则输出minn就行了。
当然这里要强调的是,minn需要一开始初始化的时候放大一些,否则一些数据会有问题,因为这里也有一个坑,这个最小解是会爆int的,嘿嘿
至于为什么x会在-1e5——1e5之间,看下图