zoukankan      html  css  js  c++  java
  • [NOIP2017] 小凯的疑惑

    Description

    给定两个互质的整数,问用这两个整数的倍和无法表示的整数中的最大值是多少。

    Solution

    这题当年考场上就是找规律的,也一直没有细究证明。答案当然是人尽皆知的 (ab-a-b)

    即要证明 ((p,q)=1) 时使得 (px+qy=n) 无非负整数解的最大正整数为 (pq-p-q)

    首先证明 (ab-a-b) 不能被表示。

    假设存在 (x,y) 使得 (px+qy=pq-p-q),那么 (p(x+1)+q(y+1)=pq)

    变形得到 (p(q-x-1)=q(y+1)),于是有 (p|q(y+1)),而 ((p,q)=1),故 (p|(y+1))。同理有 (q | (x+1))

    (y+1=pi,x+1=qj),则 (pqi+pqj=pq)(i+j=1),而 (i ge 1, j ge 1),矛盾。

    下面证明任意 (ab-a-b+t, tge 1) 都可以被表示为 (ax+by)

    (au+bv=t),则其有特解 (u_0 ge 0, v_0 in [-a+1,0])

    于是 (ab-a-b+t=ab-a-b+au_0+bv_0=(u_0-1)a+(v_0+a-1)b),证毕。

    #include <bits/stdc++.h>
    using namespace std;
    
    #define int long long
    
    int a, b;
    
    signed main()
    {
        ios::sync_with_stdio(false);
    
        cin >> a >> b;
        cout << a * b - a - b << endl;
    }
    
    
  • 相关阅读:
    单向链表的创建、输出、插入、删除
    linux文件管理指令
    二叉树的创建与遍历(递归)
    小工具
    排序
    Project Euler Problem (1~10)
    福大软工 · 最终作业
    福大软工 · 第十二次作业
    Beta冲刺 7
    Beta冲刺 6
  • 原文地址:https://www.cnblogs.com/mollnn/p/13657125.html
Copyright © 2011-2022 走看看