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;
    }
  • 相关阅读:
    PHP学习之字符串
    PHP学习之常量
    PHP之数据类型
    AngularJS学习之Select(选择框)
    Angular JS 学习之Http
    PHP之echo/print
    Angular JS 学习之服务(Service)
    Angular JS 学习之过滤器
    git打包
    gdb分析core文件
  • 原文地址:https://www.cnblogs.com/TEoS/p/11797694.html
Copyright © 2011-2022 走看看