CodeForces 416C Booking System
一道简单的模拟,或者说是贪心,处理的时候比较简单,一开始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相关推荐
- Codeforces 416C Booking System
贪心 从小桌子开始每一步都选择符合条件的最大收益 #include<bits/stdc++.h> using namespace std; struct CP {int c;int p;i ...
- codeforces 416C C. Booking System(贪心)
题目链接: codeforces 416C 题目大意: 给出n个请求,每个请求包括客人数量和支付金额,再给出m个桌子,包括桌子大小,问如何安排才能最大盈利.给出最大盈利和一个能够最大盈利的方案. 题目 ...
- 会议室预定软件开发流程(IPAVS BOOKING SYSTEM)
会议室预定系统软件开发流程思路(IPAVS BOOKING SYSTEM) 现在很多企事业单位,特别是大中型城市的企业.集团,经常会有会议室被占用.预订不到会议室.会议资源紧张.预约了会议室没有及时释 ...
- Codeforces 458A Golden System
经过计算两个字符串的大小对比 主要q^2=q+1 明明是斐波那契数 100000位肯定超LL 我在每一位仅仅取到两个以内 竟然ac了 #include<bits/stdc++.h> usi ...
- 会议室预订系统(meeting room booking system)
一.目标及业务流程 期望效果: 业务流程: 用户登录 预定会议室 退订会议室 选择日期:今日以及以后日期 二.表结构设计和生成 1.models.py(用户继承AbstractUser) from d ...
- linux下搭建mrbs会议室预定管理系统
linux下搭建mrbs会议室预定管理系统 linux下搭建mrbs会议室预定管理系统 Meeting Room Booking System (MRBS) 是一个基于 PHP/MySQL 开发的,使 ...
- nyist -- 组队赛(一)
比赛链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=44219#overview 这次比赛手残了,好像没有碰过电脑 A题,F题比较水就 ...
- 数据结构火车订票系统C语言课程设计,求助一个数据结构C语言课程设计源代码订票系统^:^!...
/********************************/ /*TurboC2.0运行通过*/ /*飞机订票系统*/ /* */ /***************************** ...
- 面试系统设计_系统设计面试问题–您应该知道的概念
面试系统设计 You may have heard the terms "Architecture" or "System Design." These com ...
最新文章
- python 图表_python导出excel charts图表
- linux内核亲和性,Linux中CPU亲和性(go)
- 关于SAP UI5 CRM Reuse Fiori应用的代码审查
- jq 如何让点击其他地方隐藏_详解jQuery除指定区域外点击任何地方隐藏DIV功能
- php分享二十四:数组
- 2011年骑行爬山成绩记录
- MySQL正则表达式的使用
- 20181211HW
- ASP.NET的自定义分页
- MapReduce框架Hadoop应用(一)
- 关于数据库设计是否需要加入(建立)外键
- 用tensorflow实现线性回归算法
- 细述 wxWindows--精简版
- iOS客户端安装包大小优化
- 更换持续集成工具,从 Travis 到 Github Actions
- 三国之空城计游戏攻略
- 简单融合双系统 苹果虚拟Win8实用技巧
- 前端之JS事件events
- mysql通过正则表达式根据手机号判断运营商
- inno setup 卸载注册表_inno setup 修改卸载文件名称