模板题——贪心(1)
1.区间选点和最大不相交区间数量【妙啊】
#include <bits/stdc++.h>using namespace std;
const int N=100010;
int n;
struct Range
{int l,r;bool operator<(const Range &W) const//结构体内重载{return r<W.r;}
}range[N];
int main()
{scanf("%d",&n);for(int i=0;i<n;i++) scanf("%d%d",&range[i].l,&range[i].r);sort(range,range+n);int res=0,ed=-2e9;//ed记录当前选中区间的右端点for(int i=0;i<n;i++)if(range[i].l>ed){res++;ed=range[i].r;}printf("%d\n",res);return 0;
}
2.区间分组
#include <bits/stdc++.h>using namespace std;
const int N=100010;
int n;
struct Range
{int l,r;bool operator <(const Range &W) const{return l<W.l;}
}range[N];
int main()
{scanf("%d",&n);for(int i=0;i<n;i++){int l,r;scanf("%d%d",&l,&r);range[i]={l,r};}sort(range,range +n);priority_queue<int, vector<int>,greater<int> >heap;//小根堆==优先队列for(int i=0;i<n;i++){auto r=range[i];if(heap.empty()||heap.top()>=r.l) heap.push(r.r);else{heap.pop();heap.push(r.r);}}printf("%d\n",heap.size());return 0;
}
3.区间覆盖
#include <bits/stdc++.h>using namespace std;
const int N=100010;
int n;
struct Range
{int l,r;bool operator<(const Range &W)const{return l<W.l;}
}range[N];
int main()
{int st,ed;scanf("%d%d",&st,&ed);scanf("%d",&n);for(int i=0;i<n;i++){int l,r;scanf("%d%d",&l,&r);range[i]={l,r};}sort(range,range+n);int res=0;bool success=false;for(int i=0;i<n;i++){int j=i,r=-2e9;while(j<n&&range[j].l<=st){r=max(r,range[j].r);j++;}if(r<st){success=false;break;}res++;if(r>=ed){success=true;break;}st=r;i=j-1;}if(!success) res=-1;printf("%d\n",res);return 0;
}
4.112.雷达设备
#include <bits/stdc++.h>using namespace std;
const int N=1010;
int n,d;
struct Segment
{double l,r;//按照区间右端点排序bool operator<(const Segment& t) const{return r<t.r;}
}seg[N];
int main()
{scanf("%d%d",&n,&d);bool failed=false;for(int i=0;i<n;i++){int x,y;scanf("%d%d",&x,&y);if(y>d) failed=true;else{double len=sqrt(d*d-y*y);seg[i]={x-len,x+len};}}if(failed) puts("-1");else{sort(seg,seg+n);//按照区间右端点排序int cnt=0;double last=-1e20;for(int i=0;i<n;i++)if(last<seg[i].l){cnt++;last=seg[i].r;}printf("%d\n",cnt);}return 0;
}
模板题——贪心(1)相关推荐
- 个人算法题精简导航整理(精炼汇总,含知识点、模板题、题单)
文章目录 前言 导航 注意事项 技巧类 自定义Pair 排序 N维数组转一维 位运算 状态压缩 算法基础 枚举 √ 指数型枚举 排列型枚举 组合型枚举 左右区间枚举 模拟 √ 日期天数问题:平年闰年情 ...
- 图论-有向图的连通性模板题(hdu1296)(hdu1827)
1.强连通分量: 强连通分量可以理解为边数最少的情况下是一个环. 这里写了一个模板题用的是tarjan算法,当然还有其他算法. tarjan算法的关键其实还是对于num数组和low数组的使用 然后可以 ...
- P1339 热浪 最短路径模板题
这么naive的题面一看就是最短路模板题~~~ ok.首先是floyd算法,tts,记得把k放在最外面就行了. 1 #include <cstdio> 2 #include <cst ...
- HDU2255 奔小康赚大钱(km模板题)
Description 传说在遥远的地方有一个非常富裕的村落,有一天,村长决定进行制度改革:重新分配房子. 这可是一件大事,关系到人民的住房问题啊.村里共有n间房间,刚好有n家老百姓, ...
- HDU1166 敌兵布阵(树状数组模板题)
敌兵布阵 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- 数单词 (AC自动机模板题)
数单词 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 为了能够顺利通过英语四六级考试,现在大家每天早上都会早起读英语. LYH本来以为自己在6月份的考试中可以通过六级, ...
- CSP认证201509-4 高速公路[C++题解]:强连通分量、tarjan算法模板题
题目分析 来源:acwing 分析: 所求即为强连通分量的个数,然后计算每个强连通分量中点的个数,相加即可. 所谓强连通分量,它是一个子图,其中任意两点可以相互到达,并且再加一个点,就不能满足任意两点 ...
- hdu 2191 悼念512汶川大地震遇难同胞 【多重背包】(模板题)
题目链接:https://vjudge.net/problem/HDU-2191 悼念512汶川大地震遇难同胞--珍惜现在,感恩生活 ...
- NYOJ 1085 数单词 (AC自动机模板题)
数单词 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 为了能够顺利通过英语四六级考试,现在大家每天早上都会早起读英语. LYH本来以为自己在6月份的考试中可以通过六级, ...
- luogu P4512 多项式除法 (模板题、FFT、多项式求逆)
luogu P4512 多项式除法 (模板题.FFT.多项式求逆) 手动博客搬家: 本文发表于20181206 14:42:53, 原地址https://blog.csdn.net/suncongbo ...
最新文章
- 《连线》杂志:2015年六大安全威胁预测
- myecplise 添加svn插件
- CentOs6.5中安装和配置vsftp简明教程
- opencv读取手机摄像头
- 深度学习如何入门?怎么入门机器/深度学习?
- php nginx 域名重定向,Nginx默认虚拟主机、用户认证、域名重定向
- 倒序查10条数据_10 | 怎么给字符串字段加索引?
- win7系统笔记本电脑开机蓝屏怎么办
- 机械指挥官——全国领先的工程机械管理平台
- Apollo的学习笔记
- python 会计师事务所_Selenium爬取会计师事务所新闻信息——以中准会计师事务所为例...
- 漫网漫画APP源码包含后台完整版
- Excel模板免费分享(办公常用、甘特图、员工绩效考核等模板)
- iptables、firewalld和ufw区别linux
- python爬虫——中文编码
- 计算机中的打印机,如何添加打印机,教您电脑如何添加打印机
- bigdecimal不等于0怎么写_我不知道三打白骨精读后感怎么写才算正能量
- 安装Ubuntu 20.04后要做的几件事(换源,精简,定制)
- 抖音协议算法教- API学习
- 源表搭建光电器件LIV特性测试实验平台
热门文章
- 双非二本院校,北京211,字节跳动 → 一个新秀的六年
- 面试题:React中setState
- 矩阵运算_SLAM中用到的矩阵计算_基本公式及知识汇总
- C++_数据结构_堆用法详解
- 机器学习笔记——感知机理解(自行取用,并不一定适合每个人)
- NDCG、AUC介绍
- Cartographer+LOAM+ LIO-SAM核心算法与源码剖析(室内+室外)
- bzoj 1603 打谷机
- oracle 存储过程 示例
- BZOJ1022 [SHOI2008]小约翰的游戏John (博弈论)