2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 B题 离散化+贪心
来源:互联网 发布:世界局势知乎 编辑:程序博客网 时间:2024/05/20 03:43
题目链接:https://nanti.jisuanke.com/t/17309
题意:给定一组人的乘车区间,区间不重合的座位可以重复使用,求最少需要用多少个座位。
思路:把区间离散化,设置一个标志表示是否是区间开始,然后排一个序,每次遇到一个区间起点就加进贡献里面,遇到区间终点总贡献减去对应人数,每次更新贡献值统计最大值,这个最大值就是答案。
#include <iostream>#include <cmath>#include <stdio.h>#include <algorithm>#include <string>#include <cstring>#include <sstream>#include <queue>#include <map>#include <set>using namespace std;typedef long long ll;const int maxn = 1003;struct node{ int s; //区间位置 int k; //区间人数 bool is_head;}da[maxn*2];bool cmp(node a,node b){ if(a.s!=b.s) return a.s<b.s; else return a.is_head<b.is_head;}int n;int main(){ while(~scanf("%d",&n)){ if(!n){ printf("*\n"); break; } int tot=0; for(int i=0;i<n;i++){ int s,t,k; scanf("%d%d%d",&s,&t,&k); da[tot].s=s; da[tot].is_head=true; da[tot].k=k; tot++; da[tot].s=t; da[tot].is_head=false; da[tot].k=k; tot++; } sort(da,da+tot,cmp); ll ans=0; ll mx=0; for(int i=0;i<tot;i++){ if(da[i].is_head){ ans+=da[i].k; mx=max(ans,mx); } else{ ans-=da[i].k; mx=max(ans,mx); } } printf("%lld\n",mx); } return 0;}
阅读全文
0 0
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 B题 离散化+贪心
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 B. Train Seats Reservation(贪心问题+区间覆盖)
- ACM 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 B. Train Seats Reservation
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 B.Train Seats Reservation(模拟)
- B. Train Seats Reservation 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 B. Train Seats Reservation
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 B Train Seats Reservation
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 B. Train Seats Reservation
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 A. Weather Patterns(阅读题)
- Auction Bidding 2017ACM-ICPC亚洲区(南宁赛区)网络赛C题
- 计蒜客 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 L题
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 M题
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 F题
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛-- B. Train Seats Reservation-(区间更新,单点查询思想)
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 B. Train Seats Reservation 和 F. Overlapping Rectangles
- git无法pull仓库refusing to merge unrelated histories 标签: gitgit合并git-pull 2016-10-03 09:04 48563人阅读 评论(
- Pycharm更改python版本
- 垃圾收集器与内存分配策略(一)
- Nginx配置详情-配置说明-参数优化-ngx_http_core_module模块变量(三)
- #NOIP2011#Mayan游戏(Dfs搜索)
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 B题 离散化+贪心
- Python的hasattr() getattr() setattr() 函数使用方法详解
- MySQL之备份与恢复
- 解决npm err windows_nt 6.1.7601问题
- Window10磁盘分区
- ORACLE 12C新特性——CDB与PDB
- springboot 高版本后继续使用log4j的解决方法
- (待完善)Ubuntu 16.04下1080Ti显卡的安装方式
- 标准库类型string