zoukankan      html  css  js  c++  java
  • CF1256A Payment Without Change 题解

    OI生涯打的第一场CF比赛,写篇题解纪念一下吧

    ------------
    可以想到先尽量用面值为1的硬币来凑,然后再用面值为n的硬币来补足。先算出用上所有面值为1的硬币还差多少钱,然后判断用面值为n的硬币够不够补足就可以了。计算需要面值为n的硬币的数量的时候,注意是否需要加1的判断。还有一个需要注意的点,有可能用面值为1的硬币就够了,即$b>=s$,有可能会出现没有特判这个情况导致 Wrong answer on test 2 的情况。

    #include<iostream>
    #include<cstdio>
    #define ll long long
    using namespace std;
    ll t,a,b,n,s;
    int main()
    {
        cin>>t;
        while(t--)
        {
            cin>>a>>b>>n>>s;
            if(((s-b)%n==0 && a>=(s-b)/n)||((s-b)%n!=0 && a>=(s-b)/n+1 && ((s-b)/n+1)*n<=s)|| b>=s)//分别判断能整除,不能整除和直接凑够的情况
                puts("YES");
            else
                puts("NO");
        }
        return 0;
    }
  • 相关阅读:
    软件工程实践总结
    beta答辩总结
    beta冲刺(6/7)
    beta 冲刺(5/7)
    beta冲刺(4/7)
    beta冲刺(3/7)
    beta冲刺(2/7)
    beta冲刺(1/7)
    CentOS7安装新版git
    NameError: name 'reload' is not defined
  • 原文地址:https://www.cnblogs.com/TEoS/p/11797694.html
Copyright © 2011-2022 走看看