[bzoj1148][CTSC2007]挂缀pendant
来源:互联网 发布:上海海关进出口数据 编辑:程序博客网 时间:2024/05/16 12:31
大意:给定若干个任务,每个任务只能在给定时刻c[i]前开始,时长w[i],求最多能完成的任务.
可以看成:
有若干区间,给出长度len[i]和左端点l[i]的限制,选出尽量多使其互不重叠.
右端点限制r[i]=l[i]+len[i]
对于i < j,若r[i] < r[j]:如果j区间可以放置于i前,那么j区间一定也可以放置于i之后;
但是如果j区间不能放置于i前,j区间可能还是可以放置于i之后.
于是令所有的i < j都有r[i]
#include <cstdio>#include <queue>#include <algorithm>using namespace std;#define ll long long#define N 1000005struct node{ ll x,y;}a[N];bool cmp(node x,node y) {return x.x<y.x;}inline ll read(){ char ch=getchar(); ll x=0LL; while ('0'>ch || ch>'9') ch=getchar(); while ('0'<=ch && ch<='9') x=(x<<3)+(x<<1)+ch-'0',ch=getchar(); return x;}priority_queue <ll> heap;int n,tot;int main(){ n=read(); for (int i=1;i<=n;++i) a[i]={read(),read()},a[i].x+=a[i].y; sort(a+1,a+1+n,cmp); ll s=0LL; for (int i=1;i<=n;++i) { if (s+a[i].y<=a[i].x) {s+=a[i].y;++tot;heap.push(a[i].y);continue;} if (heap.top()>a[i].y) s+=(a[i].y-heap.top()),heap.pop(),heap.push(a[i].y); } printf("%d\n%lld\n",tot,s);}
阅读全文
0 0
- [bzoj1148][CTSC2007]挂缀pendant
- [CTSC2007]挂缀pendant
- 1148: [CTSC2007]挂缀pendant
- 【ctsc2007】【挂缀】
- 【贪心】【CTSC2007】【cogs1584】挂缀
- [CTSC2007]挂缀 解题报告
- 【CTSC2007】挂缀 贪心
- COGS 1584. [CTSC2007]挂缀
- HDU 2294 Pendant
- hdu 2294 pendant
- HDU2294 Pendant 矩阵应用
- HDOJ 2294 - Pendant
- hdu 2294 Pendant
- hdu2294---Pendant (矩阵)
- HDU 2294 Pendant
- 【bzoj1149】【ctsc2007】【风铃】【dp】
- [CTSC2007] 数据备份Backup
- 1149: [CTSC2007]风玲Mobiles
- 关于误删win10 的EFI启动盘的解决操作~~
- 冒泡排序代码,来自邓俊辉的数据结构C++版
- returns more than one elements; nested exception is javax.persistence.NonUniqueResultException: resu
- list.copy的另类理解
- centos7中安装nginx的方法
- [bzoj1148][CTSC2007]挂缀pendant
- 14.通用Mapper中的方法详解
- cenos7修改主机名
- PAT
- Cookie使用
- 应用网站微信扫码登录处理逻辑解析
- ubuntu16.04下hadoop-2.7.4搭建
- 当我说要做大数据工程师时他们都笑我,直到三个月后……
- GAN资料