[Usaco2007 Nov]tanning分配防晒霜
2017-09-26 17:08
295 查看
Description
奶牛们计划着去海滩上享受日光浴。为了避免皮肤被阳光灼伤,所有C(1<=C<=2500)头奶牛必须在出门之前在身上抹防晒霜。第i头奶牛适合的最小和最 大的SPF值分别为minSPFi和maxSPFi(1<=minSPFi<=1,000; minSPFi<=maxSPFi<=1,000)。如果某头奶牛涂的防晒霜的SPF值过小,那么阳光仍然能 把她的皮肤灼伤;如果防晒霜的SPF值过大,则会使日光浴与躺在屋里睡觉变得 几乎没有差别。为此,奶牛们准备了一大篮子防晒霜,一共L(1<=L<=2500)瓶。第i瓶 防晒霜的SPF值为SPFi(1<=SPFi<=1,000)。瓶子的大小也不一定相同,第i 瓶防晒霜可供coveri头奶牛使用。当然,每头奶牛只能涂某一个瓶子里的防晒霜 ,而不能把若干个瓶里的混合着用。 请你计算一下,如果使用奶牛们准备的防晒霜,最多有多少奶牛能在不被灼 伤的前提下,享受到日光浴的效果?
Input
第1行: 2个用空格隔开的整数:C和L
第2..C+1行: 第i+1行给出了适合第i头奶牛的SPF值的范围:minSPFi以及 maxSPFi
第C+2..C+L+1行: 第i+C+1行为了第i瓶防晒霜的参数:SPFi和coveri,两个 数间用空格隔开。
Output
第1行: 输出1个整数,表示最多有多少头奶牛能享受到日光浴
Sample Input
3 2
3 10
2 5
1 5
6 2
4 1
输入说明
一共有3头奶牛,2瓶防晒霜。3头奶牛适应的SPF值分别为3..10,2..5,以及1..5。2瓶防晒霜的SPF值分别为6(可使用2次)和4(可使用1次)。可能的分配方案为:奶牛1使用第1瓶防晒霜,奶牛2或奶牛3使用第2瓶防晒霜。显然,最多只有2头奶牛的需求能被满足。
Sample Output
2
HINT
Source
Gold
思路
先对每头牛按照最大SPF值排序,那么SPF值更大的防晒霜显然要分给最大SPF值更大的牛,最大SPF值更小的牛选择能满足它的最小的防晒霜即可。
代码
奶牛们计划着去海滩上享受日光浴。为了避免皮肤被阳光灼伤,所有C(1<=C<=2500)头奶牛必须在出门之前在身上抹防晒霜。第i头奶牛适合的最小和最 大的SPF值分别为minSPFi和maxSPFi(1<=minSPFi<=1,000; minSPFi<=maxSPFi<=1,000)。如果某头奶牛涂的防晒霜的SPF值过小,那么阳光仍然能 把她的皮肤灼伤;如果防晒霜的SPF值过大,则会使日光浴与躺在屋里睡觉变得 几乎没有差别。为此,奶牛们准备了一大篮子防晒霜,一共L(1<=L<=2500)瓶。第i瓶 防晒霜的SPF值为SPFi(1<=SPFi<=1,000)。瓶子的大小也不一定相同,第i 瓶防晒霜可供coveri头奶牛使用。当然,每头奶牛只能涂某一个瓶子里的防晒霜 ,而不能把若干个瓶里的混合着用。 请你计算一下,如果使用奶牛们准备的防晒霜,最多有多少奶牛能在不被灼 伤的前提下,享受到日光浴的效果?
Input
第1行: 2个用空格隔开的整数:C和L
第2..C+1行: 第i+1行给出了适合第i头奶牛的SPF值的范围:minSPFi以及 maxSPFi
第C+2..C+L+1行: 第i+C+1行为了第i瓶防晒霜的参数:SPFi和coveri,两个 数间用空格隔开。
Output
第1行: 输出1个整数,表示最多有多少头奶牛能享受到日光浴
Sample Input
3 2
3 10
2 5
1 5
6 2
4 1
输入说明
一共有3头奶牛,2瓶防晒霜。3头奶牛适应的SPF值分别为3..10,2..5,以及1..5。2瓶防晒霜的SPF值分别为6(可使用2次)和4(可使用1次)。可能的分配方案为:奶牛1使用第1瓶防晒霜,奶牛2或奶牛3使用第2瓶防晒霜。显然,最多只有2头奶牛的需求能被满足。
Sample Output
2
HINT
Source
Gold
思路
先对每头牛按照最大SPF值排序,那么SPF值更大的防晒霜显然要分给最大SPF值更大的牛,最大SPF值更小的牛选择能满足它的最小的防晒霜即可。
代码
#include <cstdio> #include <algorithm> const int maxn=2500; struct cow { int l,r; bool operator <(const cow &other) const { return r<other.r; } }; struct scr { int lim,v; bool operator <(const scr &other) const { return v<other.v; } }; cow w[maxn+10]; scr r[maxn+10]; int c,k,ans; int main() { scanf("%d%d",&c,&k); for(int i=1; i<=c; i++) { scanf("%d%d",&w[i].l,&w[i].r); } for(int i=1; i<=k; i++) { scanf("%d%d",&r[i].v,&r[i].lim); } std::sort(w+1,w+c+1); std::sort(r+1,r+k+1); for(int i=1; i<=c; i++) { int flag=0; for(int j=1; j<=k; j++) { if((r[j].lim>0)&&(r[j].v>=w[i].l)&&(r[j].v<=w[i].r)) { r[j].lim--; flag=1; break; } } if(flag) { ans++; } } printf("%d\n",ans); return 0; }
相关文章推荐
- BZOJ——T 1707: [Usaco2007 Nov]tanning分配防晒霜
- 【BZOJ】1707: [Usaco2007 Nov]tanning分配防晒霜
- [bzoj1707]: [Usaco2007 Nov]tanning分配防晒霜
- bzoj 1707: [Usaco2007 Nov]tanning分配防晒霜
- bzoj 1707: [Usaco2007 Nov]tanning分配防晒霜【贪心||最大流(?)】
- 1707: [Usaco2007 Nov]tanning分配防晒霜
- BZOJ 1707: [Usaco2007 Nov]tanning分配防晒霜
- BZOJ 1707 [Usaco2007 Nov]tanning分配防晒霜
- BZOJ1707: [Usaco2007 Nov]tanning分配防晒霜
- BZOJ 1707 [Usaco2007 Nov]tanning分配防晒霜(扫描线+贪心+优先队列)
- BZOJ1707 : [Usaco2007 Nov]tanning分配防晒霜
- 【经典贪心】【bzoj 1707】: [Usaco2007 Nov]tanning分配防晒霜
- 1707: [Usaco2007 Nov]tanning分配防晒霜 (贪心)
- BZOJ 1707: [Usaco2007 Nov]tanning分配防晒霜
- 【bzoj1707】[Usaco2007 Nov]tanning分配防晒霜 贪心+Treap
- bzoj1707[Usaco2007 Nov]tanning分配防晒霜
- bzoj1707[Usaco2007 Nov]tanning分配防晒霜
- BZOJ1707: [Usaco2007 Nov]tanning分配防晒霜
- 【bzoj1707/Usaco2007 Nov】tanning分配防晒霜——贪心+优先队列
- bzoj:1692 [Usaco2007 Dec]队列变换&&1640 [Usaco2007 Nov]Best Cow Line 队列变换