code forces 397B On Corruption and Numbers

code forces   397B   On Corruption and Numbers

题目链接:http://codeforces.com/problemset/problem/397/B

题目大意:给校长行贿以获得录取资格,校长只收n元钱,多了少了都不行,行贿着手里有l元~r元这些币值的硬币(每种无数),问此次行贿能否成功。

题目分析:(根本不是背包)要分情况讨论。如果n<l,就代表最小币值比所要钱数大,肯定不行;如果l<=n<=r,说明所要钱数恰好在已有币值里面,一定能行,剩下的情况需要进一步讨论,如果r>2*l说明n/2一定可以被l~r覆盖;n/l得到一个数,这个数乘以l所得的值必小于等于n,如果这个数乘以r所得的值大于等于n,说明l~r的币值组合必能覆盖n,一定可以。

code:

#include<stdio.h>
int main()
{
    int n,l,r,flag,t;//贪污数、币值下限、币值上限
    scanf("%d",&t);
    while(t--)
    {scanf("%d%d%d",&n,&l,&r);
    if(n<l)flag=0;
    else if(r>2*l||n>=l&&n<=r||n/l*r>=n)flag=1;
    else flag=0;
    if(flag)printf("Yes\n");
    else printf("No\n");}
    return 0;
}
PS:精华部分全是抄的……最后这两种略微复杂,且缺一不可,为什么这样就能过,现在还处于不明觉厉阶段。







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值