PKU的Bridging Signals
2014-08-03 00:51
134 查看
原文:点击打开链接
PKU的Bridging Signals 在0(n*logn)的设计上写的很复杂,无意见看到下面这个程序(by CQF) 受到启发了!! 呵呵
转CQF大牛的算法:
1、建立一个栈stack,清空。{stack[i]表示当前状态下,所有长度为i的子序中最后一个数的最小值}。//这个太漂亮了:cqf是大牛大牛大大牛呀:)
2、按先后顺序循环序列的每一个数,用操作3修改当前状态
3、如果这个数不小栈顶或栈为空就++stack的长度,否则就用二分法找出一个最小的i使得stack[i]>这个数.将stack[i]更新为这个数。{可以用二分法是因为stack是有序的}
4、输出stack的长度。{最长不下子序长度}
#include <cstdio>
#include <string>
int a[40000], c;
int main()
{
int m, n, i, k;
//freopen("in.txt", "r", stdin);
scanf("%d", &m);
for(i = 0; i < m; i ++)
{
memset(a, 0, sizeof(a));
scanf("%d", &n);
c = 0;
for(k = 0; k < n; k ++)
{
int t;
scanf("%d", &t);
if(c == 0 || t > a[c - 1])
a[c ++] = t;
else
{
int l = 0, h = c - 1, mid = (l + h) / 2;
while(l < h)
{
if(a[mid] < t) l = mid + 1;
else if(a[mid] > t) h = mid;
mid = (l + h) / 2;
}
a[mid] = t;
}
//pa();
}
printf("%d\n", c);
}
return 0;
}
PKU的Bridging Signals 在0(n*logn)的设计上写的很复杂,无意见看到下面这个程序(by CQF) 受到启发了!! 呵呵
转CQF大牛的算法:
1、建立一个栈stack,清空。{stack[i]表示当前状态下,所有长度为i的子序中最后一个数的最小值}。//这个太漂亮了:cqf是大牛大牛大大牛呀:)
2、按先后顺序循环序列的每一个数,用操作3修改当前状态
3、如果这个数不小栈顶或栈为空就++stack的长度,否则就用二分法找出一个最小的i使得stack[i]>这个数.将stack[i]更新为这个数。{可以用二分法是因为stack是有序的}
4、输出stack的长度。{最长不下子序长度}
#include <cstdio>
#include <string>
int a[40000], c;
int main()
{
int m, n, i, k;
//freopen("in.txt", "r", stdin);
scanf("%d", &m);
for(i = 0; i < m; i ++)
{
memset(a, 0, sizeof(a));
scanf("%d", &n);
c = 0;
for(k = 0; k < n; k ++)
{
int t;
scanf("%d", &t);
if(c == 0 || t > a[c - 1])
a[c ++] = t;
else
{
int l = 0, h = c - 1, mid = (l + h) / 2;
while(l < h)
{
if(a[mid] < t) l = mid + 1;
else if(a[mid] > t) h = mid;
mid = (l + h) / 2;
}
a[mid] = t;
}
//pa();
}
printf("%d\n", c);
}
return 0;
}
相关文章推荐
- pku 2251 Dungeon Master 基本BFS
- pku 3039 Margaritas on the River Walk 背包dp 解题报告
- PKU ACM 1163
- [最短路spfa]pku1511-Invitation Cards
- PKU 1002 487-3279
- [动态规划]Pku3377--Ferry Lanes
- pku1674 Sorting by Swapping
- pku1679 The Unique MST
- pku1703 Find them, Catch them
- pku 2488 A Knight's Journey
- pku3090&&pku2478
- pku 2593
- Pku 1163 the Triangle
- PKU 1556 The Door
- PKU 1753 BFS+状态压缩
- 全排列next_permutation的用法 HDU 1027 PKU 3187 1146 1731
- PKU2367 Genealogical tree
- pku2352 线段树
- 【转】 ACM基本算法分类、推荐学习资料和配套pku习题
- PKU ACM 1045