D. Pairs of Segments

Problem - D - Codeforces

  思路:其实它求的就是不相交区间的最大数量,但是它的区间是两个区间合并得到,所以我们可以直接将所有能合并的区间直接合并,然后做一遍不相交区间的最大数量,这样存在一种问题就是一个区间会不会被使用两次,答案是不会的,因为如果一个区间被使用了两次,那么使用这个区间的两个大区间一定是相交的,所以我们最后得到的不相交的大区间一定不会使用同一个小区间,因为只要使用了同一个小区间,那么对应的大区间一定是相交的

// Problem: D. Pairs of Segments
// Contest: Codeforces - Educational Codeforces Round 150 (Rated for Div. 2)
// URL: https://codeforces.com/contest/1841/problem/D
// Memory Limit: 512 MB
// Time Limit: 4000 ms#include<iostream>
#include<cstring>
#include<string>
#include<sstream>
#include<cmath>
#include<cstdio>
#include<algorithm>
#include<queue>
#include<map>
#include<stack>
#include<vector> 
#include<set>
#include<unordered_map>
#include<ctime>
#include<cstdlib>
#define fi first
#define se second
#define i128 __int128
using namespace std;
typedef long long ll;
typedef double db;
typedef pair<int,int> PII;
typedef pair<int,pair<int,int> > PIII;
const double eps=1e-7;
const int N=5e5+7 ,M=5e5+7, INF=0x3f3f3f3f,mod=1e9+7,mod1=998244353;
const long long int llINF=0x3f3f3f3f3f3f3f3f;
inline ll read() {ll x=0,f=1;char c=getchar();while(c<'0'||c>'9') {if(c=='-') f=-1;c=getchar();}
while(c>='0'&&c<='9') {x=(ll)x*10+c-'0';c=getchar();} return x*f;}
inline void write(ll x) {if(x < 0) {putchar('-'); x = -x;}if(x >= 10) write(x / 10);putchar(x % 10 + '0');}
inline void write(ll x,char ch) {write(x);putchar(ch);}
void stin() {freopen("in_put.txt","r",stdin);freopen("my_out_put.txt","w",stdout);}
bool cmp0(int a,int b) {return a>b;}
template<typename T> T gcd(T a,T b) {return b==0?a:gcd(b,a%b);}
template<typename T> T lcm(T a,T b) {return a*b/gcd(a,b);}
void hack() {printf("\n----------------------------------\n");}int T,hackT;
int n,m,k;
PII w[N];void solve() {n=read();for(int i=1;i<=n;i++) w[i].fi=read(),w[i].se=read();vector<PII> vis;for(int i=1;i<=n;i++) {for(int j=1;j<=n;j++) {if(i==j) continue;int l=max(w[i].fi,w[j].fi),r=min(w[i].se,w[j].se);if(l<=r) vis.push_back({min(w[i].fi,w[j].fi),max(w[i].se,w[j].se)});}}if(vis.size()!=0) {sort(vis.begin(),vis.end(),[&](PII &a,PII &b) {if(a.se!=b.se) return a.se<b.se;else return a.fi<b.fi;});}int res,l;if(vis.size()!=0) res=1;else res=0;if(vis.size()!=0)l=vis[0].se;for(int i=0;i<vis.size();i++) {if(vis[i].fi>l) {res++;l=vis[i].se;} }printf("%d\n",n-res*2);
}   int main() {// init();// stin();scanf("%d",&T);// T=1; while(T--) hackT++,solve();return 0;       
}          

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/18704.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SolidWorks二次开发-BOM球标和材料表

目标先到100&#xff0c;实在没什么好写的了&#xff0c;先把这两个简单的功能列一下吧。 private void btnInsertBalloon_Click(object sender, EventArgs e){//插入对应的BOM气泡球 球标//操作步骤->选中视图&#xff0c;执行自动球标命令SldWorks swApp Utility.Conne…

Flowable边界事件-定时边界事件

定时边界事件 定时边界事件一、定义1. 图形标记2. 完整的流程图3. XML标记 二、测试用例2.1 定时边界事件xml文件2.2 定时边界事件测试用例 总结 定时边界事件 一、定义 时间达到设定的时间之后触发事件 由于定时边界事件和开始定时事件几乎差不多&#xff0c;四种情况我就不一…

linux入门练级篇 第三讲 基本指令3

&#x1f388;个人主页:&#x1f388; :✨✨✨初阶牛✨✨✨ &#x1f43b;推荐专栏1: &#x1f354;&#x1f35f;&#x1f32f;C语言初阶 &#x1f43b;推荐专栏2: &#x1f354;&#x1f35f;&#x1f32f;C语言进阶 &#x1f511;个人信条: &#x1f335;知行合一 &#x1f…

揭秘Dalio全天候策略:基于中美市场ETF的量化回测

01 引言 Ray Dalio 是全球最大的对冲基金——桥水联合基金&#xff08;Bridgewater Associates&#xff09;的创始人和首席投资官&#xff0c;其投资哲学在金融界中广为人知。他开创了一种被称为"全天候策略"&#xff08;All Weather Strategy&#xff09;的投资策略…

【微信小程序-uniapp】CustomPicker 自定义单项选择器组件

1. 效果图 2. 组件完整代码 <template><view class="custom-picker"><view :class=<

mybatis 注解方式操作 sql

前言:注解的方式在某些查询的时候还是比较方便的 mybatis注解配置 mapUnderscoreToCamelCase 配置Select 注解Insert 注解Delete 注解 和 Update 注解Provider 注解 mapUnderscoreToCamelCase 配置 别名设置&#xff0c;mapUnderscoreToCamelCase 配置 配置可以将 带下划线 sq…

AtcoderABC309场

A - NineA - Nine 题目大意 判断两个数是否相邻且水平排列&#xff0c;即它们在同一行并且相邻。可以直接打印或者找规律 思路分析 可以直接打印或者找规律 时间复杂度 O&#xff08;1&#xff09; 代码 #include<bits/stdc.h> using namespace std; int main(){i…

LeetCode 打卡day59--单调栈

一个人的朝圣 — LeetCode打卡第59-60天 知识总结 Leetcode 739. 每日温度题目说明代码说明 Leetcode 496. 下一个更大元素 I题目说明代码说明 Leetcode 84. 柱状图中最大的矩形题目说明代码说明 知识总结 今天做了单调栈的三道题 总结了一个模版套路: 寻找下一个更大的数 f…

冯诺依曼体系结构理解

冯诺依曼体系结构理解 1.介绍2.特点介绍3.举例说明4.注意 1.介绍 冯诺依曼体系结构&#xff08;Von Neumann Architecture&#xff09;是一种计算机体系结构&#xff0c;以数学家冯诺依曼&#xff08;John von Neumann&#xff09;的名字命名。它是一种经典的计算机设计范式&a…

使用Python爬虫和数据可视化,揭示人口大国历年人数的变迁

前言 人口大国通常在全球人口排名中位居前列&#xff0c;其人口数量远远超过其他国家。而印度和中国这两个国家的人口数量均已经超过14亿&#xff0c;而当前全球的人口总数也不过刚刚突破80亿而已&#xff0c;妥妥的天花板级别存在。或许是中国和印度在人口方面的表现太过“耀…

ContOS7 Oracle11g 安装配置

配置yum源 cd /etc mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak mkdir yum.repos.d wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo # 清理缓存 yum clean all # 建缓存 yum makecache #安装epel…

关于swagger突然跳转登录页面,swagger打开跳转login页面BUG

今天建了一个初始项目&#xff0c;引入swagger之后&#xff0c;启动调用&#xff0c;却总跳转到一个登录页面&#xff0c;手足无措 启动项目后&#xff0c;打开swagger进行测试&#xff0c;但是跳转到下图页面 最后原因是导入了security的包&#xff0c;导致权限安全拦截 注释…