题目描述: 给定炸弹和爆炸范围,求对于每个炸弹连锁爆炸的炸弹总和对\(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] 炸弹的更多相关文章

  1. [HNOI 2003]激光炸弹

    Description 一种新型的激光炸弹,可以摧毁一个边长为R的正方形内的所有的目标.现在地图上有n个目标,用整数,表示目标在地图上的位置,每个目标都有一个价值.激光炸弹的投放是通过卫星定位的,但其 ...

  2. [ZZ] Valse 2017 | 生成对抗网络(GAN)研究年度进展评述

    Valse 2017 | 生成对抗网络(GAN)研究年度进展评述 https://www.leiphone.com/news/201704/fcG0rTSZWqgI31eY.html?viewType ...

  3. 以太坊难度炸弹是什么?极大抑制矿工继续以POW方式挖矿!

    以太坊的“难度炸弹”(“Difficulty Bomb”)指的是,在挖掘算法中,使用以太币在区块链上对矿工进行奖励的难度越来越大.随着游戏变得更加复杂(矿工发现以太币难挣得多),在以太坊区块链上块的生 ...

  4. 2017 NWERC

    2017 NWERC Problem A. Ascending Photo 题目描述:给出一个序列,将其分成\(m\)份(不需要均等),使得将这\(m\)份重新排列后构成的是不下降序列,输出最小的\( ...

  5. [LOJ#6259]「CodePlus 2017 12 月赛」白金元首与独舞

    [LOJ#6259]「CodePlus 2017 12 月赛」白金元首与独舞 试题描述 到河北省 见斯大林 / 在月光下 你的背影 / 让我们一起跳舞吧 うそだよ~ 河北省怎么可能有 Stalin. ...

  6. CI Weekly #10 | 2017 DevOps 趋势预测

    2016 年的最后几个工作日,我们对 flow.ci Android & iOS 项目做了一些优化与修复: iOS 镜像 cocoapods 版本更新: fir iOS上传插件时间问题修复: ...

  7. 猖獗的假新闻:2017年1月1日起iOS的APP必须使用HTTPS

    一.假新闻如此猖獗 刚才一位老同事 打电话问:我们公司还是用的HTTP,马上就到2017年了,提交AppStore会被拒绝,怎么办? 公司里已经有很多人问过这个问题,回答一下: HTTP还是可以正常提 ...

  8. iOS的ATS配置 - 2017年前ATS规定的适配

    苹果规定 从2017年1月1日起,新提交的 app 不允许使用NSAllowsArbitraryLoads来绕过ATS(全称:App Transport Security)的限制. 以前为了能兼容ht ...

  9. 深入研究Visual studio 2017 RC新特性

    在[Xamarin+Prism开发详解三:Visual studio 2017 RC初体验]中分享了Visual studio 2017RC的大致情况,同时也发现大家对新的Visual Studio很 ...

随机推荐

  1. C#操作Word的+ CKEditor 輸出成Word文件(包含圖案上傳)

    C#操作Word 参考博文: C#操作word类文件 https://www.cnblogs.com/walking/p/3571068.html C#中的Office操作专栏(21) http:// ...

  2. 2019-9-11-.NET-Standard

    title author date CreateTime categories .NET Standard lindexi 2019-9-11 9:0:29 +0800 2019-9-11 9:0:2 ...

  3. redis String 相关命令

  4. Pregel 消息传递机制

  5. fedora28 安装automake

    yum install automake yum install hg //版本管理

  6. UartAssist串口调试工具

    第一步安装UartAssist 第二步打开UartAssist 界面为 我们将我们的wifi模块连接电脑, 查看的端口号通过计算机管理设备管理器进行查看 根据要求发送数据 就可以了

  7. js怎样判断一个数是质数

    1.首先了解什么是质数(即:只能被1和它本身整除的数叫质数)主要代码 /** *判断该数是否为素数 */ function isPrimeNum(num){ ; i < num/+; i++) ...

  8. Delphi获取句柄

    Delphi获取句柄发布时间:2011-06-16转载文章请标明出处: http://code.01yun.com/asp0dm/asp0net0dm/20110616/55395.html查找另外一 ...

  9. C/C++ Muti-Thread多线程编程学习(之)线程Thread | 创建、运行、结束

    文章目录 前言 线程 Thread 创建线程 CreateThread _beginthread _beginthreadex pthread_create 线程运行 结束线程 前言   多线程(Mu ...

  10. python从入门到大神---1、初始化实例、类属性、方法

    python从入门到大神---1.初始化实例.类属性.方法 一.总结 一句话总结: 方法不加括号是代码段:感觉python方法和js,php很类似,不加括号是代码段,加括号变成方法,比如f,f() 1 ...