CodeForces 416C Booking System
2014-04-16 00:23
337 查看
一道简单的模拟,或者说是贪心,处理的时候比较简单,一开始wa了几次。
主要错的原因在于,没有将订单的消费进行一个排序。
这样照成的结果就是,“挤掉的订单”,是该订单可安排table内中,不是最少消费的。(在安排该订单的时候,可能是最优的,但是,挤掉的时候,却不是最优的)。
那么对消费按高到低排个序,这样安排上的订单肯定是最优的。
代码:
主要错的原因在于,没有将订单的消费进行一个排序。
这样照成的结果就是,“挤掉的订单”,是该订单可安排table内中,不是最少消费的。(在安排该订单的时候,可能是最优的,但是,挤掉的时候,却不是最优的)。
那么对消费按高到低排个序,这样安排上的订单肯定是最优的。
代码:
#include <cstdio> #include <cstring> #include <algorithm> #include <cmath> #include <queue> using namespace std; const int N=1003; struct Book{ int number,money; int id; }b ; struct Table{ int number,p,maxmoney; int id; }t ; bool cmp(Table x,Table y){ if(x.number<y.number) return true; else return false; } bool cmp1(Book x,Book y){ if(x.money>y.money) return true; else return false; } int main(){ int n; while(~scanf("%d",&n)){ for(int i=1;i<=n;i++){ scanf("%d%d",&b[i].number,&b[i].money); b[i].id=i; } sort(b+1,b+1+n,cmp1); int m; scanf("%d",&m); for(int i=1;i<=m;i++){ scanf("%d",&t[i].number); t[i].p=-1;t[i].maxmoney=-1; t[i].id=i; } sort(t+1,t+1+m,cmp); for(int i=1;i<=n;i++){ int pos=-1,min=0xffffff; for(int j=1;j<=m;j++){ if(t[j].number>=b[i].number&&t[j].maxmoney<min){ min=t[j].maxmoney;pos=j; } } if(b[i].money>min){ t[pos].p=b[i].id; t[pos].maxmoney=b[i].money; } } int cnt=0,mcnt=0; queue<Table> q; for(int i=1;i<=m;i++){ if(t[i].p!=-1){ cnt++;mcnt+=t[i].maxmoney; q.push(t[i]); } } printf("%d %d\n",cnt,mcnt); while(!q.empty()){ printf("%d %d\n",q.front().p,q.front().id); q.pop(); } } return 0; }
相关文章推荐
- Codeforces 416C Booking System
- (CodeForces - 416C)Booking System
- CodeForces 416C Booking System(贪心)
- Codeforces 416C Booking System [贪心]
- Codeforces 416C Booking System(贪心)
- codeforces 416C Booking System (贪心)
- CodeForces 416C:Booking System(贪心)
- CodeForces 416C Booking System
- CodeForces Round #241 (Div. 2) 416C Booking System 订餐系统
- codeforce 416C Booking System
- codeforces 416C C. Booking System
- codeforces 416C C. Booking System(贪心)
- codeforces 416C C. Booking System(贪心)
- 【63.73%】【codeforces 560A】Currency System in Geraldion
- Codeforces 560 A. Currency System in Geraldion(想法题)
- codeforces C. Booking System
- 2016 GDUT Individual Contest2_A题_codeforces 416C(贪心)(重要)
- CodeForces 527B - Error Correct System 哈希
- 【CodeForces】458A - Golden System(数论 & 模拟)
- [线段树] Codeforces 794F Round #414 F. Leha and security system