一道简单的模拟,或者说是贪心,处理的时候比较简单,一开始wa了几次。

主要错的原因在于,没有将订单的消费进行一个排序。

这样照成的结果就是,“挤掉的订单”,是该订单可安排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[N];
struct Table{int number,p,maxmoney;int id;
}t[N];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相关推荐

  1. Codeforces 416C Booking System

    贪心 从小桌子开始每一步都选择符合条件的最大收益 #include<bits/stdc++.h> using namespace std; struct CP {int c;int p;i ...

  2. codeforces 416C C. Booking System(贪心)

    题目链接: codeforces 416C 题目大意: 给出n个请求,每个请求包括客人数量和支付金额,再给出m个桌子,包括桌子大小,问如何安排才能最大盈利.给出最大盈利和一个能够最大盈利的方案. 题目 ...

  3. 会议室预定软件开发流程(IPAVS BOOKING SYSTEM)

    会议室预定系统软件开发流程思路(IPAVS BOOKING SYSTEM) 现在很多企事业单位,特别是大中型城市的企业.集团,经常会有会议室被占用.预订不到会议室.会议资源紧张.预约了会议室没有及时释 ...

  4. Codeforces 458A Golden System

    经过计算两个字符串的大小对比 主要q^2=q+1 明明是斐波那契数 100000位肯定超LL 我在每一位仅仅取到两个以内 竟然ac了 #include<bits/stdc++.h> usi ...

  5. 会议室预订系统(meeting room booking system)

    一.目标及业务流程 期望效果: 业务流程: 用户登录 预定会议室 退订会议室 选择日期:今日以及以后日期 二.表结构设计和生成 1.models.py(用户继承AbstractUser) from d ...

  6. linux下搭建mrbs会议室预定管理系统

    linux下搭建mrbs会议室预定管理系统 linux下搭建mrbs会议室预定管理系统 Meeting Room Booking System (MRBS) 是一个基于 PHP/MySQL 开发的,使 ...

  7. nyist -- 组队赛(一)

    比赛链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=44219#overview 这次比赛手残了,好像没有碰过电脑 A题,F题比较水就 ...

  8. 数据结构火车订票系统C语言课程设计,求助一个数据结构C语言课程设计源代码订票系统^:^!...

    /********************************/ /*TurboC2.0运行通过*/ /*飞机订票系统*/ /* */ /***************************** ...

  9. 面试系统设计_系统设计面试问题–您应该知道的概念

    面试系统设计 You may have heard the terms "Architecture" or "System Design." These com ...

最新文章

  1. python 图表_python导出excel charts图表
  2. linux内核亲和性,Linux中CPU亲和性(go)
  3. 关于SAP UI5 CRM Reuse Fiori应用的代码审查
  4. jq 如何让点击其他地方隐藏_详解jQuery除指定区域外点击任何地方隐藏DIV功能
  5. php分享二十四:数组
  6. 2011年骑行爬山成绩记录
  7. MySQL正则表达式的使用
  8. 20181211HW
  9. ASP.NET的自定义分页
  10. MapReduce框架Hadoop应用(一)
  11. 关于数据库设计是否需要加入(建立)外键
  12. 用tensorflow实现线性回归算法
  13. 细述 wxWindows--精简版
  14. iOS客户端安装包大小优化
  15. 更换持续集成工具,从 Travis 到 Github Actions
  16. 三国之空城计游戏攻略
  17. 简单融合双系统 苹果虚拟Win8实用技巧
  18. 前端之JS事件events
  19. mysql通过正则表达式根据手机号判断运营商
  20. inno setup 卸载注册表_inno setup 修改卸载文件名称

热门文章

  1. 利用UE简化JAVA后端的SQL语句编辑
  2. 基于云服务创建离线数据统计分析服务(一)
  3. PHP 生成 ppt,php生成导出Word、Excel、PowerPoint插件
  4. 移动端下拉加载更多DEMO(纯js实现)
  5. 【OpenJudge 1665】完美覆盖
  6. rip neighbor_借助众筹平台Neighbor.ly透明地提高公民素质
  7. 活码二维码(动态二维码)素材库管理教程
  8. 计算机硬件发展慢,老电脑卡慢应该更换哪些硬件?看完秒懂
  9. 哈工大计算机网络Mooc 最后的总结
  10. 【编写自己的RTOS】搞定任务调度