Chain Reaction

题意:有n(1 ≤ n ≤ 100 000) 个灯泡,每个灯泡有一个位置a以及向左照亮的范围b (0 <= a <= 1e6 ,1<= b <= 1e6);(题目是按照灯泡位置递增的顺序输入的)每个灯泡的毁坏范围就是灯泡的照亮范围(包括左边界,但是自己不会毁坏)。要你在所有灯泡的右边(不能有灯泡的位置相同)任意位置设置一个向左照亮范围任意的灯泡,使得先开设置的灯泡再从右往左开启题给的灯泡时毁坏的灯泡数最少。很绕,但是题目真的很好~~~

思路:dp+递推
pre[i]:位置为i时最多能保留的灯泡数;当位置没有灯泡时,设置照亮距离为1的”灯泡”(其实就是为设置的灯泡dp出最优的覆盖的左边界),递推到右边界,同时记录下所有位置的最大保留的灯泡数ans即可;(一般1e7完全可以在1s内A的,1e8要是系数小点也是有可能的)

//Accepted    61 ms   7836 KB
#include<bits/stdc++.h>
using namespace std;
#define rep(i,n) for(int i = 0;i < (n);i++)
const int MAXN = 1e6 + ;
int scope[MAXN],pre[MAXN];
int main()
{
int n,a,r,i,ans = ;
cin>>n;
rep(i,n){
scanf("%d%d",&a,&r);
scope[a] = r;
}
rep(i,MAXN){
int p = i - scope[i] - ;//看似范围时1,其实递推出了设置灯泡的左边界~
if(p < ) pre[i] = ;//不能直接max(p,0)注意a ?= 0
else pre[i] = pre[p];
if(scope[i]) pre[i]++;
ans = max(ans,pre[i]);
}
cout<<n - ans;
}

Codeforces Round #336 (Div. 1) A - Chain Reaction的更多相关文章

  1. Codeforces Round #336 (Div. 2) C. Chain Reaction set维护dp

    C. Chain Reaction 题目连接: http://www.codeforces.com/contest/608/problem/C Description There are n beac ...

  2. Codeforces Round #336 (Div. 2)C. Chain Reaction DP

    C. Chain Reaction   There are n beacons located at distinct positions on a number line. The i-th bea ...

  3. Codeforces Round #336 (Div. 2) 608C Chain Reaction(dp)

    C. Chain Reaction time limit per test 2 seconds memory limit per test 256 megabytes input standard i ...

  4. Codeforces Round #336 (Div. 2) D. Zuma

    Codeforces Round #336 (Div. 2) D. Zuma 题意:输入一个字符串:每次消去一个回文串,问最少消去的次数为多少? 思路:一般对于可以从中间操作的,一般看成是从头开始(因 ...

  5. Codeforces Round #336 (Div. 2)【A.思维,暴力,B.字符串,暴搜,前缀和,C.暴力,D,区间dp,E,字符串,数学】

    A. Saitama Destroys Hotel time limit per test:1 second memory limit per test:256 megabytes input:sta ...

  6. Codeforces Round #336 (Div. 2)

    水 A - Saitama Destroys Hotel 简单的模拟,小贪心.其实只要求max (ans, t + f); #include <bits/stdc++.h> using n ...

  7. Codeforces Round #336 (Div. 2)B 暴力 C dp D 区间dp

    B. Hamming Distance Sum time limit per test 2 seconds memory limit per test 256 megabytes input stan ...

  8. Codeforces Round #336 (Div. 2) D. Zuma 记忆化搜索

    D. Zuma 题目连接: http://www.codeforces.com/contest/608/problem/D Description Genos recently installed t ...

  9. Codeforces Round #336 (Div. 2)B. Hamming Distance Sum 前缀和

    B. Hamming Distance Sum 题目连接: http://www.codeforces.com/contest/608/problem/A Description Genos need ...

随机推荐

  1. SQL中使用WITH AS提高性能

    本文内容一部分来自:http://wudataoge.blog.163.com/blog/static/80073886200961652022389/ 一.WITH AS的含义     WITH A ...

  2. [React] React Fundamentals: State Basics

    State is used for properties on a component that will change, versus static properties that are pass ...

  3. mysqldump 备份原理8

    /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; http://www.cnblogs.com/lyhabc/p/38 ...

  4. FAQ系列 | 解读EXPLAIN执行计划中的key_len

    http://imysql.com/2015/10/20/mysql-faq-key-len-in-explain.shtml

  5. 【转】C/C++中的日期和时间 TIME_T与STRUCT TM转换——2013-08-25 16

    http://www.cnblogs.com/Wiseman/archive/2005/10/24/260576.html 摘要: 本文从介绍基础概念入手,探讨了在C/C++中对日期和时间操作所用到的 ...

  6. css position 定位

    fixed 属于绝对定位,相对于浏览器窗口定位 (IE 6不支持)   relative 相对定位,通过设置垂直或水平位置,让这个元素"相对于"它的原始起点进行移动.       ...

  7. 在.Net中进行跨线程的控件操作(下篇:BackgroundWorker)

    在.Net中,如果我们在非UI线程上访问窗体上的控件的时候,会产生一个跨线程调用的异常,那么如何处理这种情况呢?在上一章中,我介绍了使用Control.Invoke方法,如果你不习惯使用委托,那么.N ...

  8. Java NIO 选择器(Selector)的内部实现(poll epoll)

    http://blog.csdn.net/hsuxu/article/details/9876983 之前强调这么多关于linux内核的poll及epoll,无非是想让大家先有个认识: Java NI ...

  9. Object-C类目(Category)

    类目是Object-C中最有用的一个特性.实质上,类目允许你为一个已存在的类添加一些方法而不用子类化该类,也不需要你了解该类的实现细节. 这是特别有用的,因为你可以给一个内建的对象添加方法.当你想在你 ...

  10. 八卦某 G 的前端开发方式及流程

      他山之石,可以攻玉. 话说本人从毕业到现在一直在某 B 公司工作,前些年折腾过不少开发方式和工具,但总觉得或许有更好的方案,所以很好奇其它公司内部是如何工作的,我曾经浏览过某 Y 公司内部无所不包 ...