题解CF1256A Payment Without Change
Posted teos
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了题解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;
}
以上是关于题解CF1256A Payment Without Change的主要内容,如果未能解决你的问题,请参考以下文章
错误代码:88000, 错误信息:without comment privilege hint: [7oJ0533w689] rid: 630432cd-15944cf6-083e04fc
LeetCode题解 || Longest Substring Without Repeating Characters (O(n)算法)问题