【DP】HDU 1025 Constructing Roads In JGShining's Kingdom 最长上升子序列
来源:互联网 发布:php utf8转换为gbk 编辑:程序博客网 时间:2024/05/29 14:34
要求不相交,求最长上升子序列
#include <cstdio>#include <cstring>#include <cstdlib>#include <string>#include <iostream>#include <algorithm>#include <sstream>#include <cmath>using namespace std;#include <queue>#include <stack>#include <set>#include <vector>#include <deque>#include <map>#define cler(arr, val) memset(arr, val, sizeof(arr))#pragma comment(linker, "/STACK:102400000,102400000")typedef long long LL;const int MAXN = 100+6;const int MAXM = 140000;const int INF = 0x3f3f3f3f;const int mod = 1000000007;struct node{ int x,y;}h[500010];bool cmp(node a,node b){ if(a.x==b.x) return a.y<b.y; return a.x<b.x;}int a[600000];int main(){#ifndef ONLINE_JUDGE freopen("in.txt", "r", stdin); // freopen("out.txt", "w", stdout);#endif int n,cas=0; while(scanf("%d",&n)!=EOF) { for(int i=0;i<n;i++) scanf("%d%d",&h[i].x,&h[i].y); sort(h,h+n,cmp); cler(a,0); int sum=0; a[sum++]=h[0].y; for(int i=1;i<n;i++) { if(a[sum-1]<h[i].y) { a[sum++]=h[i].y; continue; } int q=lower_bound(a,a+sum,h[i].y)-a; a[q]=h[i].y; } if(sum==1) printf("Case %d:\nMy king, at most %d road can be built.\n\n",++cas,sum); else printf("Case %d:\nMy king, at most %d roads can be built.\n\n",++cas,sum); } return 0;}
0 0
- 【DP】HDU 1025 Constructing Roads In JGShining's Kingdom 最长上升子序列
- HDU 1025 Constructing Roads In JGShining's Kingdom(DP,LIS最长上升子序列)
- HDU 1025 Constructing Roads In JGShining's Kingdom (简单dp, 最长上升子序列LIS)
- Constructing Roads In JGShining's Kingdom(最长上升子序列)
- hdu 1025 Constructing Roads In JGShining's Kingdom【即求最长上升子序列】
- HDU 1025 Constructing Roads In JGShining's Kingdom(最长上升子序列+n*logn算法)
- hdu 1025 Constructing Roads In JGShining's Kingdom(树状数组求最长上升子序列)
- hdu 1025 Constructing Roads In JGShining's Kingdom (最长上升子序列)
- hdu 1025 Constructing Roads In JGShining's Kingdom 最长上升子序列(nlogn)
- HDU-1025 Constructing Roads In JGShining's Kingdom O(nlogn)的最长上升子序列
- hdu 1025 Constructing Roads In JGShining's Kingdom(二分法+最长上升子序列)
- 最长上升子序列 nlogn算法 hdu 1025 Constructing Roads In JGShining's Kingdom
- hdu 1025 Constructing Roads In JGShining's Kingdom(最长上升子序列nlogn算法)
- hdu 1025 Constructing Roads In JGShining's Kingdom 最长上升子序列
- HDU 1025 —— Constructing Roads In JGShining's Kingdom 最长上升子序列
- HDU 1025 Constructing Roads In JGShining's Kingdom(LIS最长上升子序列)
- 【HDU 1025】Constructing Roads In JGShining's Kingdom(最长上升子序列LIS)
- HDU 1025 A - Constructing Roads In JGShining's Kingdom(最长上升子序列)
- linux虚拟进程地址映射机制
- 猜数字大小
- Java分页显示
- JAVA读取和操作PDF系列《二》
- Linux如何开启mysql远程连接
- 【DP】HDU 1025 Constructing Roads In JGShining's Kingdom 最长上升子序列
- java集合的用法
- #Miuo搭配课堂#小黑裙 如何搭出不同的风格
- C++标准库---仿函数
- android 图像淡入淡出资源问题(Button can't be cast to ImageView)
- substring 函数
- STM32F0xx IAP实现之中断向量表重定义
- Matlab各种分布的函数
- 例程学习之SampleApp--SPIMgr.c(MT层) SPIMgr_ProcessZToolData()