Codeforce 22D Segments
题意:
存在n个区间,我们至少能用多少个点将这几个区间固定住。
解析:
我们可以对所有的线段进行一次排序:
bool operator<(const Node &a)const
{
if(a.l==l)return r>a.r;
return l<a.l;
}
我们就需要不断往数组中推入新的点。并更新。
1.如果数组顶的结点可以固定这个线段那么我只直接去询问下一个就可以了。
2.如果当前线段的右端点小于数组顶的元素我们可以将该元素缩小。(因为我们是按照l进行排序的所以我们缩小后的点之前满足的一样满足)
3.如果当前线段的左端点大于数组顶的元素,我们就往数组中推入一个元素。
#include<bits/stdc++.h>
using namespace std;
struct Node
{int l,r;bool operator<(const Node &a)const{if(a.l==l)return r>a.r;return l<a.l;}
} a[1005];
vector<int>v;
int main()
{int n;cin>>n;for(int i=0; i<n; i++){cin>>a[i].l>>a[i].r;if(a[i].r<a[i].l)swap(a[i].l,a[i].r);}sort(a,a+n);int T=0;v.push_back(a[0].r);for(int i=1;i<n;i++){if(a[i].r>=v[v.size()-1]&&a[i].l<=v[v.size()-1])continue;else if(a[i].r<v[v.size()-1])v[v.size()-1]=a[i].r;else v.push_back(a[i].r);}printf("%d\n",v.size());for(int i=0;i<v.size();i++)cout<<v[i]<<" ";cout<<endl;
}
Codeforce 22D Segments相关推荐
- LeetCode刷题记录10——434. Number of Segments in a String(easy)
LeetCode刷题记录10--434. Number of Segments in a String(easy) 目录 LeetCode刷题记录9--434. Number of Segments ...
- codeforces 610D D. Vika and Segments(离散化+线段树+扫描线算法)
题目链接: D. Vika and Segments time limit per test 2 seconds memory limit per test 256 megabytes input s ...
- R语言使用ggpubr包的ggdotplot函数可视化水平棒棒糖图(自定义分组数据点色彩、自定义调色板、在两端添加点图的线段segments、整体排序从大到小、自定义数据点的大小、添加数值标签)
R语言使用ggpubr包的ggdotplot函数可视化水平棒棒糖图(自定义分组数据点色彩.自定义调色板.在两端添加点图的线段segments.整体排序从大到小.自定义数据点的大小.添加数值标签) 目录
- Codeforces Round #337 (Div. 2) D. Vika and Segments 线段树扫描线
D. Vika and Segments 题目连接: http://www.codeforces.com/contest/610/problem/D Description Vika has an i ...
- 关于Uri.Segments 属性的理解
public string[] Segments { get; } Segments 属性返回一个字符串数组,该数组包含构成 URI 的绝对路径的"段"(子字符串).通过分析绝对路 ...
- lucene正向索引——正向信息,Index – Segments (segments.gen, segments_N) – Field(fnm, fdx, fdt) – Term (tvx, ...
转自:http://www.cnblogs.com/forfuture1978/archive/2009/12/14/1623599.html 上面曾经交代过,Lucene保存了从Index到Segm ...
- PAT甲级1104 Sum of Number Segments:[C++题解]数段之和,测试点2爆double,请用long double!!!
文章目录 题目分析 题目链接 题目分析 来源:acwing 分析:本题题意比较简单,但是不能仅仅根据定义来算. 本题思路:统计每个数在多少个区间出现过,也就是这个数需要加多少次.共有n个数,其中第i个 ...
- poj 1436 zoj 1391 Horizontally Visible Segments (Segment Tree)
ZOJ :: Problems :: Show Problem 1436 -- Horizontally Visible Segments 用线段树记录表面能被看见的线段的编号,然后覆盖的时候同时把能 ...
- 翻译: Oralce官方文档-- Data Blocks, Extents, and Segments
Data Blocks, Extents, and Segments ...
最新文章
- 微软中国发布“IE8浏览器性能解密”,为金山网盾辟谣
- python知识:string.format()函数详解
- XCTF-Reverse:python-trade
- MyBatis 源码解读-执行SQL
- HTTP 错误 404.13 - Not Found 请求筛选模块被配置为拒绝超过请求内容长度的请求。(上传文件长度问题)
- Ext Ajax:如何调用Ext.Ajax.request方法和使用Java Servlet进行处理
- c java开发对比_编程语言:Java和C语言的比较,你更偏向于哪个?老程序员:选C...
- 实习日志_【人医札记】护理实习日志
- 一步步学习SPD2010--第九章节--使用可重用工作流和工作流表单(1)--创建和使用可重用工作流...
- 【网络】IP地址格式转换(htonl、ntohl;inet_addr、inet_ntoa)
- LuoguP2700逐个击破【并查集/生成树/正难则反】By cellur925
- LOJ2181 排序
- 动手学深度学习pytorch入门
- SYS/BIOS与SRIO应用实例
- Jzoj5603 xiz
- JavaScript删除节点
- 热门好用的二维码生成器API
- 1.Requests库
- 七周数据分析01_数据分析思维
- Linux系统安全工具之:Sxid和Skey