[SNOI 2017] 炸弹
题目描述: 给定炸弹和爆炸范围,求对于每个炸弹连锁爆炸的炸弹总和对\(1e9+7\)取膜
思路:
为啥都是线段树+TS+tarjan呢?
实在是搞不懂~~
线性\(O(n)\)递推即可.
#include<bits/stdc++.h>
using namespace std;
const int maxn = 1000010;
const int mod = 1e9+7ull;
#define debug(x) cout<<"x:"<<x<<endl;
#define ll long long
inline ll read() {
	ll q=0,f=1;char ch=getchar();
	while(!isdigit(ch)) {
		if(ch=='-')f =-1;ch=getchar();
	}
	while(isdigit(ch)) {
		q=q*10+ch-'0';ch=getchar();
	}
	return q*f;
}
struct node{
	ll num;
	ll pos;
}nod[maxn];
ll n;
ll L[maxn];
ll R[maxn];
ll ans;
int main() {
	n = read();
	for(ll i = 1;i <= n; ++i) {
		nod[i].pos = read(),nod[i].num = read();
	}
	for(ll i = 1;i <= n; ++i) {
		L[i] = i;
		while(nod[i].pos - nod[L[i] - 1].pos <= nod[i].num && L[i] > 1) {
			L[i] = L[L[i] - 1];
			nod[i].num = max(nod[i].num,nod[L[i]].num - (nod[i].pos - nod[L[i]].pos));
		}
	}
	for(ll i = n;i >= 1; --i) {
		R[i] = i;
		while(nod[R[i] + 1].pos - nod[i].pos <= nod[i].num && R[i] < n) {
			R[i] = R[R[i] + 1];
			L[i] = min(L[i],L[R[i]]);
		}
	}
	for(ll i = 1;i <= n; ++i) {
//		debug(i);
//		debug(L[i]);
//		debug(R[i]);
		ans = (ans + (R[i] - L[i] + 1) * i) % mod;
	}
	printf("%lld\n",ans);
	return 0;
}
/*
题目有毒orz
*/
[SNOI 2017] 炸弹的更多相关文章
- [HNOI 2003]激光炸弹
		Description 一种新型的激光炸弹,可以摧毁一个边长为R的正方形内的所有的目标.现在地图上有n个目标,用整数,表示目标在地图上的位置,每个目标都有一个价值.激光炸弹的投放是通过卫星定位的,但其 ... 
- [ZZ] Valse 2017 | 生成对抗网络(GAN)研究年度进展评述
		Valse 2017 | 生成对抗网络(GAN)研究年度进展评述 https://www.leiphone.com/news/201704/fcG0rTSZWqgI31eY.html?viewType ... 
- 以太坊难度炸弹是什么?极大抑制矿工继续以POW方式挖矿!
		以太坊的“难度炸弹”(“Difficulty Bomb”)指的是,在挖掘算法中,使用以太币在区块链上对矿工进行奖励的难度越来越大.随着游戏变得更加复杂(矿工发现以太币难挣得多),在以太坊区块链上块的生 ... 
- 2017 NWERC
		2017 NWERC Problem A. Ascending Photo 题目描述:给出一个序列,将其分成\(m\)份(不需要均等),使得将这\(m\)份重新排列后构成的是不下降序列,输出最小的\( ... 
- [LOJ#6259]「CodePlus 2017 12 月赛」白金元首与独舞
		[LOJ#6259]「CodePlus 2017 12 月赛」白金元首与独舞 试题描述 到河北省 见斯大林 / 在月光下 你的背影 / 让我们一起跳舞吧 うそだよ~ 河北省怎么可能有 Stalin. ... 
- CI Weekly #10 | 2017 DevOps 趋势预测
		2016 年的最后几个工作日,我们对 flow.ci Android & iOS 项目做了一些优化与修复: iOS 镜像 cocoapods 版本更新: fir iOS上传插件时间问题修复: ... 
- 猖獗的假新闻:2017年1月1日起iOS的APP必须使用HTTPS
		一.假新闻如此猖獗 刚才一位老同事 打电话问:我们公司还是用的HTTP,马上就到2017年了,提交AppStore会被拒绝,怎么办? 公司里已经有很多人问过这个问题,回答一下: HTTP还是可以正常提 ... 
- iOS的ATS配置 - 2017年前ATS规定的适配
		苹果规定 从2017年1月1日起,新提交的 app 不允许使用NSAllowsArbitraryLoads来绕过ATS(全称:App Transport Security)的限制. 以前为了能兼容ht ... 
- 深入研究Visual studio 2017 RC新特性
		在[Xamarin+Prism开发详解三:Visual studio 2017 RC初体验]中分享了Visual studio 2017RC的大致情况,同时也发现大家对新的Visual Studio很 ... 
随机推荐
- zmq的send
			int zmq_send (void *socket, zmq_msg_t *msg, int flags); 2.2.1 nt zmq_send (void *socket, void * ... 
- 酷狗mac版如何新建歌单?酷狗mac版收藏歌单方法
			很多朋友们都喜欢使用酷狗音乐听音乐,不过最近有使用酷狗mac音乐播放器的Mac新用户,想要新建歌单收藏歌单,但有不知道如何操作,那么苹果电脑酷狗mac版如何新建歌单收藏歌单呢?针对此问题,本文给大家介 ... 
- on windows in superset sql lab error "module object has no attribute sigalrm"
			改下 utils.py 文件 It works after doing the following change (sorry for the massed up alignment, prob ... 
- js循环给li绑定事件实现和弹出对应的索引
			原文:http://www.cnblogs.com/wuchuanlong/p/5945286.html 方法一,动态添加click事件,并添加属性 var itemli = document.get ... 
- ps去除元素的三种常用方法
			1.仿制图章工具,alt+鼠标左键进行选取复制区域,然后左键点击需要覆盖的区域. 2.套锁工具--选择区域--右键填充--内容识别. 3.修补工具,选中区域--拖动适配. 附带另一份较 ... 
- 使用Process子类创建进程
			#_author:来童星#date:2019/12/17# 使用Process子类创建进程from multiprocessing import Processimport timeimport os ... 
- python pillow模块用法
			pillow Pillow是PIL的一个派生分支,但如今已经发展成为比PIL本身更具活力的图像处理库.pillow可以说已经取代了PIL,将其封装成python的库(pip即可安装),且支持pytho ... 
- 说说ReactiveCocoa 2
			http://www.cocoachina.com/applenews/devnews/2014/0115/7702.html 转自无网不剩的博客 ReactiveCocoa是Github开源 ... 
- 事件绑定addEventListener
			通过addEventListener监听函数实现的dom事件绑定 addEventListener可以为当前dom添加一个事件(这个事件可以是个已有的事件),这就无法避免我们在写代码的时候重复去绑定同 ... 
- hive表操作(转)
			转载于:http://blog.csdn.net/lovelovelovelovelo/article/details/52234971 数据类型 基本数据类型 集合类型,array.map.stru ... 
