cf#336-C - Chain Reaction-二分
来源:互联网 发布:windows 7磁盘整理 编辑:程序博客网 时间:2024/04/30 22:23
http://codeforces.com/contest/608/problem/C
//ans【i】,表示 以第i灯作为最后一个灯,保存下来的灯数,
计算ans[i]方法就是 xx=tm[i].l-tm[i].r //表示第i个灯最左的杀伤范围,二分找到第一个小于这个杀伤范围的灯B,ans[i]= ans【B灯】+1; 有点类似DP的递推
计算出n个ans值,复杂度nlogn
n-max_ans就是 最小的被杀掉的灯数了
#include <cstdio>#include <cmath>#include <cstring>#include <string>#include <algorithm>#include <queue>#include <map>#include <stack>#include <vector>#include <iostream>using namespace std; struct node{__int64 l,r;bool operator <(const node &b) const{return l<b.l;} };node tm[100005]; __int64 ans[1000005];int main(){__int64 i,j,k; __int64 n;scanf("%I64d",&n);for (i=1;i<=n;i++){scanf("%I64d%I64d",&tm[i].l,&tm[i].r);}sort(tm+1,tm+1+n);ans[tm[1].l]=1;node tmp;for (i=2;i<=n;i++){__int64 xx=tm[i].l-tm[i].r;tmp.l=xx;__int64 it=lower_bound(tm+1,tm+1+n,tmp)-tm;//二分找到最后一个未被破坏的灯 it--;if (it==0)//如果不存在,即只剩下该灯本身ans[tm[i].l]=1;elseans[tm[i].l]=ans[tm[it].l]+1;//那么剩下的灯数由原来的+1(本身)}__int64 maxx=ans[tm[1].l];//ans【i】,以第i灯作为最后一个灯,保存下来的灯数,选一个最大的for (i=1;i<=n;i++){if (ans[tm[i].l]>maxx)maxx=ans[tm[i].l];}printf("%I64d\n",n-maxx);return 0;}
0 0
- cf#336-C - Chain Reaction-二分
- Codefrences #336 C. Chain Reaction
- Codeforces Round #336 (Div. 2)-C Chain Reaction(二分+DP)
- codeforce 608C Chain Reaction
- Codeforces Round #336 (Div. 2) C. Chain Reaction
- Codeforces Round #336 (Div. 2) 608C Chain Reaction(dp)
- Codeforces Round #336 (Div. 2)C. Chain Reaction
- Codeforces Round #336 (Div. 2)-C. Chain Reaction
- Codeforces 607A Chain Reaction 【二分 + dp】
- codeforces 607 A Chain Reaction (二分)
- Codeforces 607A Chain Reaction (dp+二分)
- codeforces_607A. Chain Reaction(二分+简单dp)
- codeforces 607 A Chain Reaction dp 二分
- Codeforces 607A Chain Reaction(二分 + dp)
- Chain reaction
- 续Codeforces 608 C Chain Reaction
- 【33.33%】【codeforces 608C】Chain Reaction
- Codeforces Round #336 (Div. 1) A. Chain Reaction DP+(可选二分)
- 【机器学习】支持向量机SVM学习(2)
- Android Studio——Message
- 苹果电脑下开启PHP功能
- 【LWJGL2 WIKI】【现代OpenGL篇】用DrawArrays画方形
- hihoCoder 1260 String Problem I
- cf#336-C - Chain Reaction-二分
- go语言学习-程序结构
- 移动web应用开发——Sencha Touch篇(1)
- 第三章 主机规划与磁盘分区
- 电池
- MotionEvent.getX /Y 与 getRamX/Y 区别。
- 剑指offer-合并排序链表
- iOS UITableView(十) tableViewcell内容重复的解决办法
- nob211,com网上我拿佰家樂玩龍虎,皇家博-彩平台