zoukankan      html  css  js  c++  java
  • 【CCPC2020绵阳站】K

     原题:

     题意:

    给你一个x,让你把x拆成若干个互质的数的和,要求拆出来的极差最小

    若x为奇数,可以拆成(x-1)/2和(x-1)/2+1,两个相邻的数一定互质(除了1和2)

    这个其实可以证明

    gcd(a,a+1)=gcd(a+1,(a+1)%a)=gcd(a+1,1)=1

    神奇吧,后面基本都是这个思想

    若x为偶数,设x=2y

    ①如果y是偶数(即x为4的倍数),那么显然可以拆成y-1和y+1,二者一定互质

    证明:gcd(a,a+2)=gcd(a+2,(a+2)%a)=gcd(a+2,2)=1(a是奇数,a+2也是奇数)

    而且x拆出来的极差一定不能是1

    证明:若x=a+1+a,则与x=2y矛盾

    所以y-1和y+1一定是最优解

    ②如果y是奇数,那么显然可以拆成y-2和y+2,二者也一定互质

    证明:gcd(a,a+4)=gcd(a+4,(a+4)%a)=gcd(a+4,4)=1(a是奇数,a+4是奇数)

    但是注意,极差4并不一定是最优解

    不过4也是非常有用的,由于一定能构造出4,所以接下来只需要考虑2和3就行了

    (1)对于极差是2

    ①如果用2个数

    那么令x=a+a+2=(a+1)+(a+1)

    由x=2y,如果y是偶数那么成立(考虑过了),如果是奇数则不成立

    ②如果用2个数

    那么x=a+a+1+a+2=3a+3,只有当x是3的倍数,且a是奇数的时候才可成立,此时a,a+1,a+2一定两两互质

    (2)对于极差是3

    如果用4个数,那么一定出现两个偶数,所以只能用3个数

    而且3个数只能有一个偶数,所以只有两种情况

    ①a, a+2, a+3

    此时x=3(a+1)+2,只有当x%3=2时成立,且要求a不为3的倍数,否则a和a+3不互质

    证明:gcd(a,a+3)=gcd(a+3,(a+3)%a)=gcd(a+3,3)

    ②a-1, a, a+2

    此时x=3a+1,只有当x%3=1时成立,且要求a-1不为3的倍数

    至此所有情况讨论完整

    综上,可以得出总的判断方法:

    ①如果x为6则无解

    ②否侧若x是2 3 4的倍数,那么答案是2

    ③否则若x%3=1,那么如果(x-1)/3-1是3的倍数,则答案是4,否则答案是3

    ④否则若x%3=2,那么如果(x-2)/3-1是3的倍数,则答案是4,否则答案是3

    没有代码

  • 相关阅读:
    友盟页面统计
    为什么调用 FragmentPagerAdapter.notifyDataSetChanged() 并不能更新其 Fragment?
    让jQuery的ajaxFileUpload插件支持onchange事件
    sublime双击选择全选带中划线
    配置Chrome Workspace功能
    font-face 跨域解决
    Yahoo团队经验:网站性能优化的34条黄金法则
    require.js+knockout.js+.underscore模板引擎的使用
    使用livereload实现自动刷新
    WebStorm 7.0 支持更多的Web技术
  • 原文地址:https://www.cnblogs.com/cdcq/p/13910127.html
Copyright © 2011-2022 走看看