1、http://codeforces.com/problemset/problem/397/B
2、题目大意:
用l-r区间的面额,组成金额n,看能否能组成
假设f是用l最接近n的值,我们假设能够找到f和n的差值,那么就能组成这样的n的面额,一开始以为只要存在一个值在区间中等于l+x(x为f和n的差值),其实这样想是不对的,可以用最多k个次r值组成这个差值x,网上代码给出k*r>=n就可以,实际上是在证k*l<=n<=(k+1)*l,这样n就存在
就理解这么多,待续
3、题目:
Alexey, a merry Berland entrant, got sick of the gray reality and he zealously wants to go to university. There are a lot of universities nowadays, so Alexey is getting lost in the diversity — he has not yet decided what profession he wants to get. At school, he had bad grades in all subjects, and it's only thanks to wealthy parents that he was able to obtain the graduation certificate.
The situation is complicated by the fact that each high education institution has the determined amount of voluntary donations, paid by the new students for admission — ni berubleys. He cannot pay more than ni, because then the difference between the paid amount and ni can be regarded as a bribe!
Each rector is wearing the distinctive uniform of his university. Therefore, the uniform's pockets cannot contain coins of denomination more than ri. The rector also does not carry coins of denomination less than li in his pocket — because if everyone pays him with so small coins, they gather a lot of weight and the pocket tears. Therefore, a donation can be paid only by coins of denomination x berubleys, where li ≤ x ≤ ri (Berland uses coins of any positive integer denomination). Alexey can use the coins of different denominations and he can use the coins of the same denomination any number of times. When Alexey was first confronted with such orders, he was puzzled because it turned out that not all universities can accept him! Alexey is very afraid of going into the army (even though he had long wanted to get the green uniform, but his dad says that the army bullies will beat his son and he cannot pay to ensure the boy's safety). So, Alexey wants to know for sure which universities he can enter so that he could quickly choose his alma mater.
Thanks to the parents, Alexey is not limited in money and we can assume that he has an unlimited number of coins of each type.
In other words, you are given t requests, each of them contains numbers ni, li, ri. For each query you need to answer, whether it is possible to gather the sum of exactly ni berubleys using only coins with an integer denomination from li to ri berubleys. You can use coins of different denominations. Coins of each denomination can be used any number of times.
The first line contains the number of universities t, (1 ≤ t ≤ 1000) Each of the next t lines contain three space-separated integers: ni, li, ri (1 ≤ ni, li, ri ≤ 109; li ≤ ri).
For each query print on a single line: either "Yes", if Alexey can enter the university, or "No" otherwise.
2 5 2 3 6 4 5
Yes No
You can pay the donation to the first university with two coins: one of denomination 2 and one of denomination 3 berubleys. The donation to the second university cannot be paid.
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; int main() { int t; int n,l,r; scanf("%d",&t); while(t--) { scanf("%d%d%d",&n,&l,&r); if(n<l && n<r) printf("No\n"); else { int k=n/l; if((r>=2*l-1) || (n>=l && n<=r) || (k*r>=n)) printf("Yes\n"); else printf("No\n"); } } return 0; } /* 2 5 2 3 6 4 5 */