百度之星 2015 初赛(2) 1005 序列变换
来源:互联网 发布:淘宝怎么预防死人衣服 编辑:程序博客网 时间:2024/06/05 14:36
序列变换
Accepts: 695
Submissions: 3322
Time Limit: 2000/1000 MS (Java/Others)
Memory Limit: 32768/32768 K (Java/Others)
解题思路:
最长非严格单调递增子序列。
#include <stdio.h>int GetPosition(int c[], int len, int i, int X[]){ int start = 1; int end = len; while (start <= end) { int mid = (start + end) / 2; if (X[c[mid]] <= X[i]) { start = mid + 1; } else { end = mid - 1; } } return start;}int LongestIncreasingSubsequence(int X[], int n){ int c[n], path[n]; c[0] = -1; c[1] = 0; int line[n]; line[0] = c[0]; int len = 1; for (int i = 1; i < n; ++i) { int index = GetPosition(c, len, i, X); line[i] = c[index - 1]; c[index] = i; if (index > len) { len = index; } } path[0] = c[len]; int i = 0; while (line[path[i]] != -1) { path[i + 1] = line[path[i]]; ++i; } return len;}int main() { int T,i,j,it; scanf("%d", &T); for(i = 1; i <= T; i++) { int N; scanf("%d", &N); int a[N]; for(j = 0; j < N; j++) {scanf("%d", a+j);a[j]-=j;}; int r = LongestIncreasingSubsequence(a, N); printf("Case #%d:\n",i); printf("%d\n", N - r); } return 0;}
0 0
- 百度之星 2015 初赛(2) 1005 序列变换
- 序列变换 2015百度之星(初赛)1005
- 2015百度之星初赛2 1005 序列变换(lis变形)
- 2015百度之星初赛2 1005 序列变换(LIS变形)
- 百度之星 2015 初赛(1) 1003 序列变换
- 2015年百度之星初赛(1) --- C 序列变换
- 【百度之星初赛】序列变换(二分,贪心)
- 【百度之星初赛2】序列变换(最长上升子序列)
- [二分+贪心]2015百度之星初赛第一场 序列变换
- BC 2015年百度之星程序设计大赛 - 初赛(1)(序列变换-二分答案贪心)
- 百度之星2015初赛(1)1003 HDOJ5248 序列变换(二分 贪心)
- 2015Astar百度之星初赛 1005 序列变化
- hdu5256 序列变换 百度之星初赛第二场 最长上升子序列变形
- 百度之星初赛(1) 1003 序列变换 二分搜索
- 百度之星1005 序列变换(lis)
- hdoj5256 序列变换(2015年百度之星程序设计大赛
- 百度之星初赛第二场1005
- 百度之星 2015 初赛(2) 1003 棋盘占领
- hdu 1164 Eddy's research I
- php利用接口实现类的多重继承
- MooTools
- Android canvas & shader & path
- 将正整数N转换成m(2-16)进制数
- 百度之星 2015 初赛(2) 1005 序列变换
- linux下安装oracle11g详解
- Java NIO 02=====Channel
- linux下stc89c52及其他国产芯片烧写方案
- 异步消息与AsyncTask机制
- 提交spark应用程序spark-submit
- Android知识点
- 创建MySQL索引
- poj-1947 Rebuilding Roads