【P1835】小红花
很简单的题,然而我没想到,在NOIP上怎么办嘛QAQ
话说这题不知道怎么分类啊……先扔到玄学里边把……
原题:
Fj在圣诞节来临之际,决定给他的奶牛发一些小红花。
现在Fj一共有N头奶牛,这N头牛按照编号1..N,排成一队,来接受Fj颁发的小红花,每头奶牛最多只能戴一朵小红花,当然,不可能每头牛都能带上小红花。
于是,奶牛们就开始提要求:在编号为第s头的奶牛到编号为第e头的奶牛之间,最少要分配X朵小红花,这些要求Fj当然必须要满足,现在Fj想知道,在满足要求的情况下,最少要购买多少朵小红花。
n≤30000,M≤5000。
搞区间,先按照右端点优先递增排序,用一个flag表示这个位置上有没有小红花,枚举区间,记录一下这个区间要的小红花个数,遍历这个区间,如果区间中这个位置有小红花了,个数--,然后再从区间右往左,如果这个位置没有小红花,个数--并给这个位置添上小红花,直到个数为0
为什么呐
因为我们是按照右端点优先递增排序的,所以从右边往左添加小红花就能尽可能的保证这些小红花能覆盖到更多的区间
一开始要减去小红花的个数是防止左边有一些位置有小红花了,但是我们从右边遍历可能遍历不到
这题很简单,然而我没有想出来,我好弱啊QAQ
代码:
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
int n,m;
struct cdd{int qleft,qright,qge;}qv[];
bool compare(cdd x,cdd y){ return (x.qright==y.qright) ? (x.qleft<y.qleft) : (x.qright<y.qright);}
int ans=;
bool flag[];
int main(){//freopen("ddd.in","r",stdin);
memset(flag,,sizeof(flag));
cin>>n>>m;
for(int i=;i<=m;i++) scanf("%d%d%d",&qv[i].qleft,&qv[i].qright,&qv[i].qge);
sort(qv+,qv+m+,compare);
for(int i=;i<=m;i++){
int _ge=qv[i].qge,temp=qv[i].qright;
for(int j=qv[i].qleft;j<=qv[i].qright;j++)if(flag[j]) _ge--;
for(;_ge>;temp--)if(!flag[temp]){ flag[temp]=true; ans++; _ge--;}
}
cout<<ans<<endl;
return ;
}
【P1835】小红花的更多相关文章
- N厂水鬼烂大街?那来看ZF厂V4帝舵小红花
自从帝舵小红花推上市面之后,各大工厂都在推出新版本,但做得最成熟的还是ZF厂,帝舵这个品牌是非常低调的,很少有人关注,但是ZF厂在这款腕表也是下了不少功夫,曾经帝舵小红花和N厂水鬼并列为最顶级的表畅销 ...
- Atitit.软件研发团队建设原理与概论 理论
Atitit.软件研发团队建设原理与概论 理论 培训 团队文化建设(内刊,ppt,书籍,杂志等) 梯队建设 技术储备人才的问题 团队建设--小红花评比. 团队建设--文化墙.doc 户外拓展 1. 团 ...
- EntityFramework之原始查询如何查询未映射的值,你又知道多少?
前言 今天又倒腾了下EF,如题所示,遇到了一些问题,并最终通过尝试找到了解决方案,可能不是最终的解决方案,若你有更好的解决方案,望告知,同时通过阅读此文,定让你收获不少. 引入 当我们查询时一直是中规 ...
- EntityFramework之异步、事务及性能优化(九)
前言 本文开始前我将循序渐进先了解下实现EF中的异步,并将重点主要是放在EF中的事务以及性能优化上,希望通过此文能够帮助到你. 异步 既然是异步我们就得知道我们知道在什么情况下需要使用异步编程,当等待 ...
- EntityFramework之原始查询及性能优化(六)
前言 在EF中我们可以通过Linq来操作实体类,但是有些时候我们必须通过原始sql语句或者存储过程来进行查询数据库,所以我们可以通过EF Code First来实现,但是SQL语句和存储过程无法进行映 ...
- EntityFramework之孩子删除(四)(你以为你真的懂了?)
前言 从表面去看待事物视线总有点被层层薄雾笼罩的感觉,当你静下心来思考并让指尖飞梭于键盘之上,终将会拨开浓雾见青天.这是我切身体验. 在EF关系配置中,我暂且将主体对象称作为父亲,而依赖对象称作为孩子 ...
- Excel里内嵌在线翻译
本来寻思着继续写点系统运行日志跟踪技术的,但早晨哥家领导从单位打来电话,让帮助她的闺蜜搞一个excel翻译的问题,总部IT搞不定.我过去是用excel做了几年工作,却都是些数学计算,跟翻译也扯不上啊: ...
- awk命令简单学习
请执行命令取出linux中eth0的IP地址(请用cut,有能力者也可分别用awk,sed命令答). 解答: 说明:此题解答方法已经给大家讲解了不下15种,还可以有很多,在这里给大家着重讲下awk的技 ...
- Javascript进阶篇——(JS基础语法)笔记整理
根据慕课网学习整理到一起的笔记,把东西整理到一起看起来比较方便 什么是变量字面意思:变量是可变的量:编程角度:变量是用于存储某种/某些数值的存储器.我们可以把变量看做一个盒子,盒子用来存放物品,物品可 ...
随机推荐
- [rfc3261]sip - via header
在很多情况下,sip并非直达目标主机的,而是要经过很多中间节点服务器.在request消息中,via头域表示当前已走过的节点(每经过一个节点,添加一个via头):在response消息中,via头域表 ...
- iphone判断当前网络连接类型
eachability只能区分出无网络.wifi和wwan(2G&2.5G&3G)类型的网络连接类型,只需重构networkStatusForFlags方法,即可详细区分出2G与3G网 ...
- jenkins持续集成工具
jenkins是开源的 持续集成.持续构建的可视化web工具,持续构建说直白,就是各种项目的自动化编译.打包.分发部署. 好很多优点: 1.支持多语言 2.跟svn.git能无缝集成 3.直接与知名源 ...
- JS内置对象
字符串对象 <script> //字符串对象 var str = "Hello worldlsgjlsjg"; document.write('string.lengt ...
- 用Unity实现的依赖注入
第一步:添加引用 上面那两个玩意 第二步:在app_start中添加unityconfig 上面那个玩意 第三步:在global.asax文件中进行初始化 如上面的,在application_star ...
- BW增强数据源的两种方法
BW增强数据源的两种方法 2009-04-01, by SAPBI 前言:我们经常会遇到系统标准的数据源,或者我们自建的数据源无法满足要求的情况,这个时候在数据源中添加几个相关的字段,可能就能满足我们 ...
- php大力力 [016节] 兄弟连高洛峰php教程(2014年 14章数据库章节列表)
2015-08-25 php大力力016 兄弟连高洛峰php教程(2014年 14章数据库章节列表) [2014]兄弟连高洛峰 PHP教程14.1.1 复习数据库 15:58 [2014]兄弟连高洛 ...
- JQuery源码分析(五)
分离构造器 通过new 操作符构建一个对象,一般经过四部: A.创建一个新对象 B.将构造函数的作用域赋给新对象(所以this就指向了这个新对象) C.执行构造函数中的代码 D.返回这 ...
- CoreData的使用入门到精通
源码下载地址: http://download.csdn.net/download/huntaiji/6664567 一,创建项目文件--选择Empty Application 起名:CoreDat ...
- sqlite 数据类型详解
大多数的数据库引擎(到现在据我们所知的除了sqlite的每个sql数据库引擎)都使用静态的.刚性的类型,使用静态类型,数据的类型就由它的容器决定,这个容器是这个指被存放的特定列. Sqlite使用一个 ...