4444: [Scoi2015]国旗计划|贪心|倍增
来源:互联网 发布:济南市社保查询软件 编辑:程序博客网 时间:2024/06/15 19:53
因为没有区间被其他区间包含这个条件,也就是如果
假如区间
这样可以按照左端点排序,然后每一个战士要找的下一个战士都是确定的,然后用倍增找出一共需要多少战士就可以了
#include<algorithm>#include<iostream>#include<cstdlib>#include<cstring>#include<cstdio>#include<vector>#include<cmath>#include<queue>#include<set>#include<map>#define ll long long#define N 402020#define pa pair<int,int>using namespace std;int sc(){ int i=0,f=1; char c=getchar(); while(c>'9'||c<'0'){if(c=='-')f=-1;c=getchar();} while(c>='0'&&c<='9')i=i*10+c-'0',c=getchar(); return i*f;}struct W{int l,r,p;}a[N];int n,m,tot,fa[N][19],ans[N];set<pa>st;bool cmp(W a,W b){ return a.l<b.l;}void solve(int x){ int p=a[x].p,L=a[x].l+m; for(int i=18;i>=0;i--) if(fa[x][i]) if(a[fa[x][i]].r<L) x=fa[x][i],ans[p]+=(1<<i);}int main(){ n=sc(),m=sc(); for(int i=1;i<=n;i++) { a[++tot].l=sc(),a[tot].r=sc(),a[tot].p=i; if(a[tot].r<a[tot].l)a[tot].r+=m; ++tot; a[tot].l=a[tot-1].l+m; a[tot].r=a[tot-1].r+m; } sort(a+1,a+tot+1,cmp); st.insert(make_pair(a[tot].l,tot)); for(int i=tot-1;i;i--) { fa[i][0]=(--st.upper_bound(make_pair(a[i].r,0x7FFFFFFF)))->second; st.insert(make_pair(a[i].l,i)); } for(int i=1;i<=18;i++) for(int j=tot;j;j--) fa[j][i]=fa[fa[j][i-1]][i-1]; for(int i=1;i<=tot;i++) if(a[i].p) solve(i); for(int i=1;i<=n;i++) printf("%d ",ans[i]+2); return 0;}
0 0
- 4444: [Scoi2015]国旗计划|贪心|倍增
- 4444: [Scoi2015]国旗计划
- 4444: [Scoi2015]国旗计划
- 4444: [Scoi2015]国旗计划
- bzoj 4444: [Scoi2015]国旗计划
- BZOJ 4444 [Scoi2015]国旗计划
- BOZJ 4444([Scoi2015]国旗计划-区间问题)
- bzoj 4444: [Scoi2015]国旗计划 递推
- scoi2015 bzoj4444 国旗计划
- BZOJ4444 SCOI2015国旗计划 根据性质优化贪心
- BZOJ4444: [Scoi2015]国旗计划 解题报告
- 【BZOJ 4448】 [Scoi2015]情报传递|倍增LCA|主席树
- HDU 4343 贪心+倍增
- 【运输计划】【二分】【树上倍增】
- hdu4343 Interval query【贪心+倍增】
- 工资倍增计划给我们的启示
- 【noip2015】【Day2】【二分】【倍增】运输计划
- 2015NOIP运输计划倍增做法
- 对Android中集成支付宝支付流程的总结
- 221. Maximal Square
- 实现一个clone函数
- 【Hibernate步步为营】--关联映射之多对一
- 校第十六届大学生程序设计竞赛暨2016省赛集训队选拔赛(Problem E)
- 4444: [Scoi2015]国旗计划|贪心|倍增
- Java中父类与子类的普通代码块,构造代码块,静态代码块 初始化
- Effective Java第29条--将局部变量的作用域最小化
- android 高效开发工具
- 93. Restore IP Addresses
- Python 基础—— collections 模块
- 一个把Mathematica代码中符号转为unicode符号的网页
- 【Hibernate步步为营】--(一对多映射)之单向关联
- 对iOS 9 新增的控件 UIStackView 官方文档的翻译 第四部分