codeforces 848c - two TVs
2017-08-22 15:42:44
writer:pprp
参考:http://blog.csdn.net/qq_37497322/article/details/77463376#comments
本来题意也不是很清楚,想到的只有桶排序,但是很明显,会TLE
看了许多别人的代码都不是很明白,看了上边这位大佬的代码以后清楚了一点
题意说明:
你有两台电视,你可以同时看两台,但是如果这台电视节目结束,但同时另一个节目开始不行
#include <bits/stdc++.h> using namespace std; struct node
{
int s,t;
int d;
}a[];
int cmp(node x,node y)//节目开始时间从小到大排,相同结束时间早的在前
{
if(x.s!=y.s)
return x.s<y.s;
return x.t<y.t;
}
struct tv
{
int e;//记录电视节目的结束时间
int tag;//记录电视的开闭
}t[];
int main()
{
int i,n,flag=;
scanf("%d",&n);
for(i=;i<n;i++)
{
scanf("%d%d",&a[i].s,&a[i].t);
}
sort(a,a+n,cmp);
t[].e=-;
t[].e=-;
t[].tag=;
t[].tag=;
for(i=;i<n;i++)//模拟电视的开闭
{
if(a[i].s>t[].e)//根据节目的结束时间清除电视的状态
{
t[].tag=;
}
if(a[i].s>t[].e)
{
t[].tag=;
}
if(!t[].tag)//如果第一台可以看
{
t[].tag=;
t[].e=a[i].t;
}
else if(!t[].tag)
{
t[].tag=;
t[].e=a[i].t;
}
else
{
flag=;
break;
}
}
if(flag)
printf("YES\n");
else
printf("NO\n");
return ;
}
codeforces 848c - two TVs的更多相关文章
- Codeforces 848C (cdq分治)
		Codeforces 848C Goodbye Souvenir Problem : 给一个长度为n的序列,有q个询问.一种询问是修改某个位置的数,另一种询问是询问一段区间,对于每一种值出现的最右端点 ... 
- Codeforces 848C Goodbye Souvenir(CDQ 分治)
		题面传送门 考虑记录每个点的前驱 \(pre_x\),显然答案为 \(\sum\limits_{i=l}^{r} i-pre_i (pre_i \geq l)\) 我们建立一个平面直角坐标系,\(x\ ... 
- Codeforces 848C Goodbye Souvenir [CDQ分治,二维数点]
		洛谷 Codeforces 这题我写了四种做法-- 思路 不管做法怎样,思路都是一样的. 好吧,其实不一样,有细微的差别. 第一种 考虑位置\(x\)对区间\([l,r]\)有\(\pm x\)的贡献 ... 
- 【Codeforces 848C】Goodbye Souvenir
		Codeforces 848 C 题意:给\(n\)个数,\(m\)个询问,每一个询问有以下类型: 1 p x:将第p位改成x. 2 l r:求出\([l,r]\)区间中每一个出现的数的最后一次出现位 ... 
- Codeforces 845C. Two TVs 思路:简单贪心算法
		题目: 题目原文链接:http://codeforces.com/contest/845/problem/C 题意:现在我们有一个电视清单,有两个电视,电视清单上有每一个节目的开始时间和结束时间. 电 ... 
- Codeforces 845D - Two TVs(贪心)
		原题链接:http://codeforces.com/problemset/problem/845/D 题意:一个人在驾照考试中,路边有“限速XX”.“没有限速”.“可以超车”.“不能超车”路牌, 以 ... 
- [Codeforces]848C - Goodbye Souvenir
		题目大意:n个数字,m次操作,支持修改一个数字和查询一个区间内每种数字最大出现位置减最小出现位置的和.(n,m<=100,000) 做法:把每个数字表示成二维平面上的点,第一维是在数组中的位置, ... 
- Codeforces 845 C. Two TVs 思路:简单贪心算法
		题目: 题目原文链接:http://codeforces.com/contest/845/problem/C 题意:现在我们有一个电视清单,有两个电视,电视清单上有每一个节目的开始时间和结束时间. 电 ... 
- Codeforces 845 C Two TVs
		参考:https://blog.csdn.net/xjh_shin/article/details/77491693 #include <iostream> #include <cs ... 
随机推荐
- 转:java高并发学习记录-死锁,活锁,饥饿
			死锁 两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去. 为什么会产生死锁: ① 因为系统资源不足. ② 进程运行推进的顺序不合适. ③ ... 
- linux中的周期调度器
			2017-06-27 上篇文章简要介绍了Linux进程调度,以及结合源代码窥探了下CFS的调度实例.但是没有深入内部区分析调度下面的操作,比如就绪队列的维护以及进程时间的更新等.本节就这些问题做深入讨 ... 
- Django在生产环境中的部署
			基本思路 1.方案:Nginx+uwsgi 这样大体的流程是:nginx作为服务器最前端,负责接收client的所有请求,统一管理.静态请求由Nginx自己处理.非静态请求通过uwsgi传递给Djan ... 
- Vuex、axios以及跨域请求处理
			一.Vuex 1.介绍 vuex是一个专门为Vue.js设计的集中式状态管理架构. 对于状态,我们把它理解为在data中需要共享给其他组件使用的部分数据. Vuex和单纯的全局对象有以下不同: 1. ... 
- setup.py
			from distutils.core import setup # 使用说明 # 执行以下命令 # python3 setup.py build # python3 setup.py sdist(这 ... 
- Linux more命令
			more命令类似与cat命令,却比cat命令强大,它以全屏幕的方式按页显示文本文件的内容,支持vi中的关键字定位操作. 1.快捷键 space, z 向下翻页b,ctrl+b 向上翻页 E ... 
- JavaScript Big-Int
			这个库是为JavaScript中的大整数操作,如加,减,乘,除,mod,比较等. 这个库的原理是模拟笔和纸的操作,你可以操作整数,大到你的RAM允许. 例 var bigInt = require(' ... 
- HDFS集中式的缓存管理原理与代码剖析
			转载自:http://www.infoq.com/cn/articles/hdfs-centralized-cache/ HDFS集中式的缓存管理原理与代码剖析 Hadoop 2.3.0已经发布了,其 ... 
- python全栈开发从入门到放弃之socket并发编程多线程GIL
			一 介绍 ''' 定义: In CPython, the global interpreter lock, or GIL, is a mutex that prevents multiple nati ... 
- php集成财付通支付接口
			<?phpif(!defined('DEDEINC')) exit('Request Error!');/** *财付通接口类 */class tenpay{ var $dsql; var $m ... 
