BZOJ 1577 贪心
思路:同POJ3038
http://blog.csdn.net/qq_31785871/article/details/52953214
//By SiriusRen
#include <set>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int k,n,c,tot=1,size,ans;
struct Node{int s,e,m;}node[50050],jy;
multiset<Node>s;
multiset<Node>::iterator it;
bool operator < (Node a,Node b){return a.e<b.e;}
bool cmp(Node a,Node b){return a.s<b.s;}
int main(){
scanf("%d%d%d",&k,&n,&c);
for(int i=1;i<=k;i++)
scanf("%d%d%d",&node[i].s,&node[i].e,&node[i].m);
sort(node+1,node+1+k,cmp);
for(int i=1;i<=n;i++){
while(node[tot].s==i)size+=node[tot].m,s.insert(node[tot++]);
it=s.begin();
while((*it).e==i){
ans+=(*it).m;size-=(*it).m;
s.erase(it);it=s.begin();
}
while(size>c){
it=s.end();it--;
if(size-(*it).m<=c){
jy=(*it);
jy.m=(*it).m-(size-c);
size=c;
s.erase(it);
s.insert(jy);
}
else size-=(*it).m,s.erase(it);
}
}
printf("%d\n",ans);
}
BZOJ 1577 贪心的更多相关文章
- bzoj 1577: [Usaco2009 Feb]庙会捷运Fair Shuttle——小根堆+大根堆+贪心
Description 公交车一共经过N(1<=N<=20000)个站点,从站点1一直驶到站点N.K(1<=K<=50000)群奶牛希望搭乘这辆公交车.第i群牛一共有Mi(1& ...
- bzoj 1577: [Usaco2009 Feb]庙会捷运Fair Shuttle【贪心+线段树】
按结束时间排序,然后开个线段树,按照排序后的牛群贪心的选 贪心的依据是选哪头牛都是选,不如给后面的多省一点空间 #include<iostream> #include<cstdio& ...
- BZOJ 1577: [Usaco2009 Feb]庙会捷运Fair Shuttle 线段树 + 贪心
escription 公交车一共经过N(1<=N<=20000)个站点,从站点1一直驶到站点N.K(1<=K<=50000)群奶牛希望搭乘这辆公交车.第i群牛一共有Mi(1&l ...
- bzoj 1193 贪心
如果两点的曼哈顿距离在一定范围内时我们直接暴力搜索就可以得到答案,那么开始贪心的跳,判断两点横纵坐标的差值,差值大的方向条2,小的条1,不断做,直到曼哈顿距离较小时可以暴力求解. 备注:开始想的是确定 ...
- bzoj 2697 贪心
就贪心就行了,首先可以看成n个格子,放物品,那么 一个物品假设放3个,放在1,k,n处,那么价值和放在1,n 是一样的,所以一个物品只放两个就行了,价值大的应该尽量放 在两边,那么排序之后模拟就行了 ...
- bzoj 3037 贪心
我们可以贪心的分析,每个点的入度如果是0,那么这个点不可能 被用来更新答案,那么我们每次找入度为0的点,将他去掉,如果他连的 点没有被更新过答案,那么更新答案,去掉该点,环的时候最后处理就行了 /** ...
- bzoj 1193 贪心+bfs
1193: [HNOI2006]马步距离 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2015 Solved: 914[Submit][Statu ...
- bzoj 1899 贪心+dp
思路:这个贪心排顺序我居然没看出来. 吃饭时间长的在前面, 用反证法很容易得出. 剩下的就是瞎dp啦. #include<bits/stdc++.h> #define LL long lo ...
- 【题解】期末考试 六省联考 2017 洛谷 P3745 BZOJ 4868 贪心 三分
题目传送门:这里是萌萌哒传送门(>,<) 啊♀,据说这题有个完全贪心的做法,但是要维护太多东西好麻烦的(>,<),于是就来口胡一发三分的做法. 思路很简单,假设我指定了一个x, ...
随机推荐
- linux操作---cd
cd命令用于切换工作路径,格式是cd [选项][参数]: [选项] -p 如果切换的工作目录是一个符号连接,直接切换到符号连接指向的目标目录: -L 如果切换的工作目录是一个符号连接,直接切换到符 ...
- python 面向对象 封装
什么是封装 广义上的封装:代码的保护,面对对象的思想本身就是 只让自己的对象能调自己类的方法 狭义上的封装:将属性和方法藏起来 私有属性/私有方法 python没有真正意义的私有属性,可以通过调用实例 ...
- Java里的各种队列
以下翻译来自java8的官方文档: 1.LinkedBlockingQueue:基于链接节点的可选限定的blocking queue . 这个队列排列元素FIFO(先进先出). 队列的头部是队列中最长 ...
- 【剑指Offer面试题】 九度OJ1371:最小的K个数
题目链接地址: http://ac.jobdu.com/problem.php?pid=1371 题目1371:最小的K个数 时间限制:1 秒内存限制:32 兆特殊判题:否提交:5938解决:1265 ...
- HDU 5310 Souvenir
Souvenir Accepts: 901 Submissions: 2743 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262 ...
- Android configChanges使用方法
1. 在manifest文件里使用activity的默认属性.横屏竖屏时,惠重复调用onDestory和onCreate 造成不必要的开销.Android默认如此应该是为了适配不同的xml布局 ...
- nj08---process、console
概念:所有属性都可以在程序的任何地方访问,即全局变量.在JavaScript中,通常window是全局对象,而Node.js的全局对象是global,所有全局变量都是global对象的属性,如:con ...
- poj_1195Mobile phones,二维树状数组
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> us ...
- Nginx下部署TP5项目
标签(空格分隔): linux nginx配置文件: server { listen 81; #listen [::]:80; server_name _; index index.html inde ...
- sicily 1000. LinkedList
Description template <typename E> class LinkedList { private: // inner class: linked-list ...