zoukankan      html  css  js  c++  java
  • 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则有解,如果有解则将不定方程代入二元二次方程中进行化简。

    具体步骤:先进行消元   代入方程中,可得 然后进行化简,最后得到

     

    这不就是一个一元二次方程的最小解问题

    然后根据高中知识可得对称轴为 

    最后在对称轴两边找满足的解,即可,找到即为最小解

    然后说下暴力解法 先假设一个最小值minn1e18+7,直接暴力跑x,让x-10^510^5开始跑,首先如果满足不定方程有解,则代入算一个值,如果这个值小于minn,则minn=这个解,然后跑完之后如果minn==1e18+7,则没有不定方程的解,输出bold,否则输出minn就行了。

    当然这里要强调的是,minn需要一开始初始化的时候放大一些,否则一些数据会有问题,因为这里也有一个坑,这个最小解是会爆int的,嘿嘿

    至于为什么x会在-1e5——1e5之间,看下图

     

     

  • 相关阅读:
    21.策略模式(Strategy Pattern)
    22.访问者模式(Visitor Pattern)
    23.状态模式(State Pattern)
    20.备忘录模式(Memento Pattern)
    18.中介者模式(Mediator Pattern)
    Delphi OpenDialog1 文件过滤及多选实现
    计算机存储单位/容量单位(bit、B、KB、MB、GB、TB、PB、EB、ZB、YB、BB、NB、DB、CB) 和 带宽单位 bps
    生成FTP快捷键,通过资源管理器打开的方法
    Delphi WinAPI SetJob-暂停、继续、取消或重新启动指定打印机上的打印作业。
    Delphi WinAPI FindFirstPrinterChangeNotification 和FindNextPrinterChangeNotification
  • 原文地址:https://www.cnblogs.com/maybe96/p/9943591.html
Copyright © 2011-2022 走看看