#2007. 「SCOI2015」国旗计划

思路:

  跪烂Claris

代码:

#include <cstdio>
#include <algorithm>
#define maxn 800010
int n,m,ai[maxn][],bi[maxn],f[maxn<<],st[maxn];
int g[maxn],nxt[maxn<<],q[maxn<<],t,ans[maxn],L,x,y,i;
inline void in(int&a)
{
char c;
while(!(((c=getchar())>='')&&(c<='')));
a=c-'';while(((c=getchar())>='')&&(c<=''))(a*=)+=c-'';
}
inline int lower(int x)
{
int l=,r=m,mid,t;
while(l<=r) if(bi[mid=(l+r)>>]<=x) l=(t=mid)+;else r=mid-;
return t;
}
inline void up(int &x,int y)
{
if(x<y) x=y;
}
void dfs(int x)
{
q[++t]=x;
if(x<=m)
for(int i=L;;i++)
if(q[t-i]>=x+m)
{
ans[x]=i;
break;
}
for(int i=g[x];i;i=nxt[i]) dfs(i);
t--;
}
int main()
{
freopen("data.txt","r",stdin);
in(n),in(m);
for(m=,i=;i<=n;i++) in(ai[i][]),in(ai[i][]),bi[++m]=ai[i][],bi[++m]=ai[i][];
for(std::sort(bi+,bi+m+),i=;i<=n;i++)
{
st[i]=x=lower(ai[i][]),y=lower(ai[i][]);
if(x<y) up(f[x],y),up(f[x+m],y+m);
else up(f[],y),up(f[x],y+m),up(f[x+m],m+m);
}
for(i=;i<=m+m;i++) up(f[i],f[i-]);
for(i=;i<m+m;i++) nxt[i]=g[f[i]],g[f[i]]=i;
for(L=-,i=;i<=m;i=f[i])L++;
dfs(m+m);
for(i=;i<=n;i++) printf("%d ",ans[st[i]]);
return ;
}

AC日记——「SCOI2015」国旗计划 LiBreOJ 2007的更多相关文章

  1. 「SCOI2015」国旗计划 解题报告

    「SCOI2015」国旗计划 蛮有趣的一个题 注意到区间互不交错,那么如果我们已经钦定了一个区间,它选择的下一个区间是唯一的,就是和它有交且右端点在最右边的,这个可以单调队列预处理一下 然后往后面跳拿 ...

  2. loj #2007. 「SCOI2015」国旗计划

    #2007. 「SCOI2015」国旗计划   题目描述 A 国正在开展一项伟大的计划 —— 国旗计划.这项计划的内容是边防战士手举国旗环绕边境线奔袭一圈.这项计划需要多名边防战士以接力的形式共同完成 ...

  3. AC日记——「SCOI2015」情报传递 LiBreOJ 2011

    #2011. 「SCOI2015」情报传递 思路: 可持久化树状数组模板: 代码: #include <bits/stdc++.h> using namespace std; #defin ...

  4. AC日记——「SCOI2015」小凸玩矩阵 LiBreOJ 2006

    「SCOI2015」小凸玩矩阵 思路: 二分+最大流: 代码: #include <bits/stdc++.h> using namespace std; #define maxn 300 ...

  5. AC日记——「HNOI2017」单旋 LiBreOJ 2018

    #2018. 「HNOI2017」单旋 思路: set+线段树: 代码: #include <bits/stdc++.h> using namespace std; #define max ...

  6. AC日记——「SCOI2016」幸运数字 LiBreOJ 2013

    「SCOI2016」幸运数字 思路: 线性基: 代码: #include <bits/stdc++.h> using namespace std; #define maxn 20005 # ...

  7. AC日记——「SCOI2016」背单词 LiBreOJ 2012

    #2012. 「SCOI2016」背单词 思路: Orz: 代码: #include <bits/stdc++.h> using namespace std; #define maxn 1 ...

  8. AC日记——「SDOI2017」序列计数 LibreOJ 2002

    「SDOI2017」序列计数 思路: 矩阵快速幂: 代码: #include <bits/stdc++.h> using namespace std; #define mod 201704 ...

  9. #2007. 「SCOI2015」国旗计划

    好久没更过博了.. 首先断环为链,因为线段互相不包含,所以对每个线段\(i\)可以找一个满足\(r_j\geq l_i\)的\(l_j\)最小的线段,dp的时候\(i\)就会从\(j\)转移过来 然后 ...

随机推荐

  1. 监听scrollview

    http://blog.csdn.net/u012527802/article/details/47320009

  2. xml 通过正则抓取字段

    $str = '<xml> <appid><![CDATA[wxd49ea66070209a6e]]></appid> <bank_type> ...

  3. main函数的传参与返回

    1.谁给main函数传参(1)调用main函数所在的程序的它的父进程给main函数传参,并且接收main的返回值.2.为什么需要给main函数传参(1)首先,main函数不传参是可以的,也就是说父进程 ...

  4. BAT script to set local account password never expire

    BAT script wmic UserAccount where Name="account123" set PasswordExpires=False

  5. php中相关函数

    1.php标准风格 <?php //这是标准风格 echo '推荐标准风格'; ?> 2.php中文乱码 .html:<meta http-equiv="Content-T ...

  6. Log4J使用实例---日志进行邮件发送或是存入数据库

    部分转摘:http://blog.csdn.net/azhao_dn/article/details/9118667 1.根类别(在类别层次结构的顶部,即全局性的日志级别) 配置根Logger,其语法 ...

  7. [LeetCode] 13. Roman to Integer ☆☆

    Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range from 1 t ...

  8. Web Api Action的筛选

    web Api设置默认路由设置: 这种目标Action方法的选择有以下几轮: 1.针对 HTTP方法 进行筛选 2.针对参数类型,可以做参数约束 3.针对参数数量 另一种路由“api/{control ...

  9. 洛谷 P2800 又上锁妖塔

    https://www.luogu.org/problem/show?pid=2800 题目背景 小D在X星买完了想要的东西,在飞往下一个目的地的途中,正无聊的他转头看了看身边的小A,发现小A正在玩& ...

  10. jsp04状态管理

    1.http 协议的无状态性 无状态是指,当浏览器发送请求给服务器的时候,服务器会响应.但当同一个浏览器再次发送请求时,服务器不会知道是刚才那个浏览器. 简单说,服务器[不会保存用户状态],不会记得客 ...