2019上海网络赛 - Light bulbs

题目链接:Light bulbs


一道离散化+差分
由于区间很大,我们不能直接去差分,必然TLE,但是我们可以注意到修改次数十分小,于是我们可以想到离散化之后再差分。


对于求解答案,我们可以只分析区间。同时根据差分的思想,用一个变量记录前缀和。如果当前是左区间则加一,否则减一(右区间)。然后每次记录答案,如果当前的前缀和为奇数,那么代表是亮的,于是我们答案加上当前后面的那个值,与当前这个值之间的和,因为这个区间没有操作能改变它们了。注意不能加到后面那个值的位置,因为那是未知的,可能被后续操作改变。


AC代码:

#pragma GCC optimize(2)
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e3+10;
int T,n,m,ts,res,s,tot;
struct node{
	int x,id;
}t[N<<1];
int cmp(const node s1,const node s2){
	return s1.x<s2.x;
}
signed main(){
	cin>>T;
	while(T--){
		cin>>n>>m;	res=s=tot=0;
		for(int i=1;i<=m;i++){
			int a,b;	cin>>a>>b;
			t[++tot]={a,1};	t[++tot]={b+1,-1};
		}
		sort(t+1,t+1+tot,cmp);
		for(int i=1;i<=tot;i++){
			s+=t[i].id;
			if(s&1)	res+=(t[i+1].x-t[i].x);
		}
		printf("Case #%d: %d\n",++ts,res);
	}
	return 0;
}
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
# 一张图晒出你司的标语 #
4274次浏览 75人参与
# AI面会问哪些问题? #
27625次浏览 552人参与
# 厦门银行科技岗值不值得投 #
7980次浏览 188人参与
# 你的实习产出是真实的还是包装的? #
20087次浏览 342人参与
# 找AI工作可以去哪些公司? #
9011次浏览 233人参与
# 春招至今,你的战绩如何? #
64714次浏览 578人参与
# 开放七大实习专项,百度暑期实习值得冲吗 #
15149次浏览 221人参与
# 从事AI岗需要掌握哪些技术栈? #
8860次浏览 302人参与
# 你做过最难的笔试是哪家公司 #
33267次浏览 231人参与
# 中国电信笔试 #
31977次浏览 292人参与
# 投递几十家公司,到现在0offer,大家都一样吗 #
340727次浏览 2173人参与
# 哪些公司真双非友好? #
69570次浏览 289人参与
# 阿里笔试 #
178475次浏览 1315人参与
# 机械人避雷的岗位/公司 #
62698次浏览 393人参与
# 第一份工作一定要去大厂吗 #
14491次浏览 122人参与
# 金三银四,你的春招进行到哪个阶段了? #
22065次浏览 280人参与
# 为了减少AI幻觉,你注入过哪些设定? #
26245次浏览 310人参与
# 沪漂/北漂你觉得哪个更苦? #
9797次浏览 193人参与
# HR最不可信的一句话是__ #
6195次浏览 113人参与
# 应届生第一份工资要多少合适 #
20674次浏览 86人参与
# AI时代,哪个岗位还有“活路” #
11470次浏览 341人参与
# 春招你拿到offer了吗 #
831151次浏览 9986人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务