【NOIP2016提高A组五校联考1】道路规划
来源:互联网 发布:虚拟恋人软件 编辑:程序博客网 时间:2024/06/04 18:26
题目
分析
我们考虑,当现在有一个合法的集合时,如何往里面增加一个点,使这个集合仍然合法。
假设现在有一个合法的集合,
那么当我们加入一个点,它的道路穿过来整个集合,那么
然后搞一遍最长下降子序列就可以了。
#include <cmath>#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>const int maxlongint=2147483647;const int mo=1000000007;const int N=50005;using namespace std;int a[100050][3],n,ans[100050],maxr[100050],b[100050];int rf(int l,int r,int v){ if(l==r) return l; int k,m; m=(l+r)/2; if(maxr[m]<v) return rf(1,m,v);else if(maxr[m]>v) return rf(m+1,r,v);}int main(){ cin>>n; int i,j,k,g; for(i=1;i<=n;i++) { scanf("%d",&a[i][0]); b[a[i][0]]=i; } for(i=1;i<=n;i++) { scanf("%d",&a[i][2]); a[b[a[i][2]]][1]=i; } k=0; maxr[0]=maxlongint; for(i=1;i<=n;i++) { g=rf(1,k+1,a[i][1]); if(k+1==g) { k++; } maxr[g]=a[i][1]; ans[a[i][2]]=g; } cout<<k<<endl;}
1 0
- 【JZOJ4810】【NOIP2016提高A组五校联考1】道路规划
- 【NOIP2016提高A组五校联考1】道路规划
- JZOJ4810. 【NOIP2016提高A组五校联考1】道路规划
- 【NOIP2016提高A组五校联考1】道路规划
- JZOJ 4810 【NOIP2016提高A组五校联考1】道路规划
- 【NOIP2016提高A组五校联考1】道路规划
- 【NOIP2016提高A组五校联考1】道路规划
- 【NOIP2016提高A组五校联考1】排队
- 【NOIP2016提高A组五校联考1】排队
- 【NOIP2016提高A组五校联考1】排队
- 【NOIP2016提高A组五校联考1】排队
- 【NOIP2016提高A组五校联考1】排队
- NOIP2016提高A组五校联考1总结
- 【NOIP2016提高A组五校联考1】总结
- 【JZOJ 4810】【NOIP2016提高组 五校联考1】道路规划
- 【NOIP提高组五校联考】道路规划
- 【JZOJ4809】【NOIP2016提高A组五校联考1】挖金矿
- 【JZOJ4811】【NOIP2016提高A组五校联考1】排队
- 第四章 第二节 前端功能整理
- 循环语句的嵌套,控制执行顺序语句巩固.。
- 86. Partition List
- Android源码工程根目录文件
- HDU 5533 Dancing Stars on Me(数学+水题)
- 【NOIP2016提高A组五校联考1】道路规划
- git客户端保存用户名密码
- hdu3530Subsequence【单调队列优化dp】2010多校联合
- HDU 4445 Crazy Tank
- Hadoop Shell命令
- nginx中configure脚本支持的常用选项,拍摄自《Nginx高性能Web服务器详解》
- Coderforces 7D hash+dp
- PART2
- STM32:DMA方式接收SPI总线数据,并按照协议进行处理