很简单的题,然而我没想到,在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】小红花的更多相关文章

  1. N厂水鬼烂大街?那来看ZF厂V4帝舵小红花

    自从帝舵小红花推上市面之后,各大工厂都在推出新版本,但做得最成熟的还是ZF厂,帝舵这个品牌是非常低调的,很少有人关注,但是ZF厂在这款腕表也是下了不少功夫,曾经帝舵小红花和N厂水鬼并列为最顶级的表畅销 ...

  2. Atitit.软件研发团队建设原理与概论 理论

    Atitit.软件研发团队建设原理与概论 理论 培训 团队文化建设(内刊,ppt,书籍,杂志等) 梯队建设 技术储备人才的问题 团队建设--小红花评比. 团队建设--文化墙.doc 户外拓展 1. 团 ...

  3. EntityFramework之原始查询如何查询未映射的值,你又知道多少?

    前言 今天又倒腾了下EF,如题所示,遇到了一些问题,并最终通过尝试找到了解决方案,可能不是最终的解决方案,若你有更好的解决方案,望告知,同时通过阅读此文,定让你收获不少. 引入 当我们查询时一直是中规 ...

  4. EntityFramework之异步、事务及性能优化(九)

    前言 本文开始前我将循序渐进先了解下实现EF中的异步,并将重点主要是放在EF中的事务以及性能优化上,希望通过此文能够帮助到你. 异步 既然是异步我们就得知道我们知道在什么情况下需要使用异步编程,当等待 ...

  5. EntityFramework之原始查询及性能优化(六)

    前言 在EF中我们可以通过Linq来操作实体类,但是有些时候我们必须通过原始sql语句或者存储过程来进行查询数据库,所以我们可以通过EF Code First来实现,但是SQL语句和存储过程无法进行映 ...

  6. EntityFramework之孩子删除(四)(你以为你真的懂了?)

    前言 从表面去看待事物视线总有点被层层薄雾笼罩的感觉,当你静下心来思考并让指尖飞梭于键盘之上,终将会拨开浓雾见青天.这是我切身体验. 在EF关系配置中,我暂且将主体对象称作为父亲,而依赖对象称作为孩子 ...

  7. Excel里内嵌在线翻译

    本来寻思着继续写点系统运行日志跟踪技术的,但早晨哥家领导从单位打来电话,让帮助她的闺蜜搞一个excel翻译的问题,总部IT搞不定.我过去是用excel做了几年工作,却都是些数学计算,跟翻译也扯不上啊: ...

  8. awk命令简单学习

    请执行命令取出linux中eth0的IP地址(请用cut,有能力者也可分别用awk,sed命令答). 解答: 说明:此题解答方法已经给大家讲解了不下15种,还可以有很多,在这里给大家着重讲下awk的技 ...

  9. Javascript进阶篇——(JS基础语法)笔记整理

    根据慕课网学习整理到一起的笔记,把东西整理到一起看起来比较方便 什么是变量字面意思:变量是可变的量:编程角度:变量是用于存储某种/某些数值的存储器.我们可以把变量看做一个盒子,盒子用来存放物品,物品可 ...

随机推荐

  1. [转]理解WSRF之一 使用WS-ResourceProperties (整理自IBM网站)

    理解 WSRF第1部分-使用 WS-ResourceProperties   本 教程是一个由 4 部分组成的系列文章中的第 1 部分,该系列介绍 WSRF(Web Services Resource ...

  2. Android文件Apk下载变ZIP压缩包

    在azure云存储中 上传apk文件 使用ie下载 变成zip压缩包 解决方法 编辑 blob 属性和元数据 修改 内容类型 为 application/vnd.android.package-arc ...

  3. Windows下LDAP服务器配置

    LDAP即轻量级目录访问协议(Lightweight Directory Access Protocol),基础知识不再赘述,本文主要记录我的配置与安装过程. LDAP for windows下载 o ...

  4. 用命令 安装/卸载 windows服务(转)

    第一种方法: 1. 开始 ->运行 ->cmd 2. cd到C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727(Framework版本号按IIS配置 ...

  5. 《java中局部变量和成员变量的区别》

    class Car { String color; int number; void run() { System.out.println(color+"::"+number); ...

  6. 在C,C++,JAVA中int,char,各占几个字节

    int 在C和C++的占用2个字节,在java中4个字节char在C和C+中占一个字节 Java中无论是汉字还是英文字母都是用Unicode编码来表示的,一个Unicode码是16位,每字节是8位,所 ...

  7. RFIDler:一款定义RFID的读、写、仿真器的开源软件

    很多类似于RFID这样的技术看起来都很神秘,实际上他是依赖于很多物理学原理的,比如”电磁感应原理”.是的,这些现象产生的各种信号足以令人发狂,看完这些模拟模拟信号后,我忽然发现二进制信息多么干净美丽. ...

  8. 监听Android CTS测试项解决方案(一)

    前言: 首先这里需要详细叙述一下标题中"监听Android CTS测试项解决方案"的需求.这里的需求是指我们需要精确的监听到当前CTS测试正在测试的测试项. 因为我们知道CTS认证 ...

  9. Ubuntu安装samba的问题

    问题: root@ubuntu:~# apt-get install samba 正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 有一些软件包无法被安装.如果 ...

  10. Qt Charts示例

    Qt 5.7 有一些变化,把原来商业版的几个模块用GPLv3协议放到了社区版本里: Qt Charts (GPLv3) Qt Data Visualization (GPLv3) Qt Virtual ...