zoukankan      html  css  js  c++  java
  • P3951 小凯的疑惑 题解

    CSDN同步

    原题链接

    简要题意:

    给定两种互质的硬币面值,求不能用这两个硬币表示出的面值个数。

    本题作为 ( exttt{NOIP 2017}) 的签到题,有一定的难度。

    首先,互质 是一个很重要的条件。

    为什么要互质?也就是说,(gcd(x,y) = 1).

    众所周知:

    (ax + by = k) 无解且 (k) 是最大的那个。显然:

    [a leq y-1 ]

    (这是因为,(lfloor frac{a}{y} floor) 的部分可以当做 (a imes b) 的整体被列入 (b) 中)

    此时,(b geq 0) 则显然有解。所以不可以。(b<0)

    此时,(b) 越大则 (k) 越大,所以取 (a = y-1 , b=-1).

    代入得:

    [k=(y-1)x - y = xy - x - y ]

    (原来这么简单)

    时间复杂度:(O(1)).

    实际得分:(100pts).

    #pragma GCC optimize(2)
    #include<bits/stdc++.h>
    using namespace std;
    
    inline int read(){char ch=getchar();int f=1;while(ch<'0' || ch>'9') {if(ch=='-') f=-f; ch=getchar();}
    	int x=0;while(ch>='0' && ch<='9') x=(x<<3)+(x<<1)+ch-'0',ch=getchar();return x*f;}
    
    int main(){
    	int n=read(),m=read();
    	printf("%lld
    ",1ll*n*m-n-m);
    	return 0;
    }
    
    
  • 相关阅读:
    pip本地源搭建
    linux 创建 bootable iso 文件
    yum 源本地化 (two)
    linux 网络配置
    linux 设置root可以远程登陆
    察看linux 发行版
    mysql bin-log 设置
    samba 奇怪问题
    delphi中的临界区
    ligerGrid 取得选中行的数据
  • 原文地址:https://www.cnblogs.com/bifanwen/p/12600518.html
Copyright © 2011-2022 走看看