Codeforces 607A Chain Reaction (dp+二分)
来源:互联网 发布:网络借贷系统 编辑:程序博客网 时间:2024/05/31 19:18
题目链接:http://codeforces.com/problemset/problem/607/A
题意:有n个灯塔,点亮一个灯塔会摧毁该灯塔左边距离x以内的灯塔,现在可以在最右边放置一个位置和摧毁距离任意的灯塔,问最少可以摧毁多少个灯塔
思路:dp[i]表示i为最右边的灯塔时剩下的灯塔数,利用二分查询找到离灯塔i最近存活的灯塔j,dp[i]=dp[j]+1,n减去存活最多的存活数就是最小摧毁数
#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>using namespace std;struct Node{ int pow,pos;}s[1000030];bool cmp(Node p,Node q){ return p.pos<q.pos;}int dp[1000030];int main(){ int n; while (scanf("%d",&n)!=EOF) { int res=0x3f3f3f3f; memset(dp,0,sizeof(dp)); for (int i=0;i<n;i++) { scanf("%d%d",&s[i].pos,&s[i].pow); } sort(s,s+n,cmp); for (int i=0;i<n;i++) { Node tmp; tmp.pos=s[i].pos-s[i].pow; int low=lower_bound(s,s+n,tmp,cmp)-s; //cout<<low<<endl; if (low==0) dp[i]=1; else dp[i]=dp[low-1]+1; res=min(n-dp[i],res); } printf("%d\n",res); }}
0 0
- Codeforces 607A Chain Reaction 【二分 + dp】
- Codeforces 607A Chain Reaction (dp+二分)
- codeforces 607 A Chain Reaction dp 二分
- Codeforces 607A Chain Reaction(二分 + dp)
- codeforces 607 A Chain Reaction (二分)
- CodeForces 607 A. Chain Reaction(dp)
- [CodeForces 607A]Chain Reaction[DP]
- Codeforces 607A Chain Reaction【dp】
- Codeforces 607 A Chain Reaction
- 607A Chain Reaction(DP)
- Codeforces 607A:Chain Reaction 二分+递推
- Codeforces Round #336 (Div. 1) A. Chain Reaction DP+(可选二分)
- Codeforces Round #336 (Div. 1)A. Chain Reaction(DP)
- Codeforces Round #336 (Div. 1) 607A Chain Reaction 简单dp
- codeforces_607A. Chain Reaction(二分+简单dp)
- Codeforces Round #336 (Div. 2)-C Chain Reaction(二分+DP)
- Codeforces Round #336 (Div. 2) 608C Chain Reaction(dp)
- Codeforces Round #336 (Div. 1) A - Chain Reaction
- linux 查找目录或文件
- Android Studio 2.0正式版下载
- 【UNET自学日志】Part15 僵尸攻击玩家
- 链表结点翻转
- 八、Go语言包之strings--go语言学习笔记
- Codeforces 607A Chain Reaction (dp+二分)
- 数据库设计14个技巧
- 奋斗吧,程序员——第二十二章 事了拂衣去,深藏身与名
- jsp 获取项目路径,java获取项目路径
- OC 和JS的交互
- servlet中方法的编写
- tomcat启动报错:At least one JAR was scanned for TLDs yet contained no TLDs.
- LoadRunner实现MD5加密的两种方式
- 第十周项目一 阅读程序,写出程序运行的结果(2)