博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
P1020-导弹拦截
阅读量:5233 次
发布时间:2019-06-14

本文共 1189 字,大约阅读时间需要 3 分钟。

1 #include 
2 #define _for(i,a,b) for(int i = (a);i < b;i ++) 3 typedef long long ll; 4 using namespace std; 5 inline bool read(int &x) 6 { 7 char c=getchar(); 8 if(c==EOF)return false; 9 while(c>'9'||c<'0')c=getchar();10 while(c>='0'&&c<='9')11 {12 x=(x<<1)+(x<<3)+(c^48);13 c=getchar();14 }15 return true;16 }17 18 int a[100003];19 int dp1[100003];20 int dp1sum = 1;21 int dp2[100003];22 int dp2sum = 1;23 int n = 0;24 int main()25 {26 memset(a,0,sizeof(a));27 while(read(a[n++]));n--;28 29 dp2[1] = dp1[1] = a[0];30 _for(i,1,n)31 {32 if(a[i]<=dp1[dp1sum])33 dp1[++dp1sum] = a[i]; 34 else35 {36 int k = upper_bound(dp1+1,dp1+dp1sum+1,a[i],greater
())-dp1;37 dp1[k] = a[i];38 }39 if(a[i]>dp2[dp2sum])40 dp2[++dp2sum] = a[i];41 else42 {43 int k = lower_bound(dp2+1,dp2+dp2sum+1,a[i])-dp2;44 dp2[k] = a[i];45 }46 }47 printf("%d\n",dp1sum);48 printf("%d\n",dp2sum);49 return 0;50 }

 

转载于:https://www.cnblogs.com/Asurudo/p/11319423.html

你可能感兴趣的文章
Lintcode: Partition Array
查看>>
Maximum Product Subarray
查看>>
C语言小项目-火车票订票系统
查看>>
[Linux]PHP-FPM与NGINX的两种通讯方式
查看>>
Java实现二分查找
查看>>
[LintCode] 462 Total Occurrence of Target
查看>>
springboot---redis缓存的使用
查看>>
架构图-模型
查看>>
黑马程序员_Java基础枚举类型
查看>>
一位90后程序员的自述:如何从年薪3w到30w!
查看>>
在.net core上使用Entity FramWork(Db first)
查看>>
UIImage 和 iOS 图片压缩UIImage / UIImageVIew
查看>>
MongoDB的数据库、集合的基本操作
查看>>
ajax向后台传递数组
查看>>
疯狂JAVA16课之对象与内存控制
查看>>
[转载]树、森林和二叉树的转换
查看>>
软件测试-----Graph Coverage作业
查看>>
django ORM创建数据库方法
查看>>
创建Oracle synonym 详解
查看>>
php7 新特性整理
查看>>