博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 1950 Bridging signals
阅读量:7209 次
发布时间:2019-06-29

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

还是求最长上升子序列,DP中基础的一种。不过今天出了点问题,TLE了。经过提醒,我花了N个小时去看nlogn算法,总算A了。作为一个菜鸟,还真是没有骄傲的资本啊。

1 #include
2 #define MAXN 40005 3 int m,n; 4 int c[MAXN],a[MAXN]; 5 int find(int *c,int len,int n) 6 {
7 //就是在n可以取代数组c中的数的条件下, 8 //把n放到c中,n所对应的下标 9 int left=0,right=len,mid; 10 mid = (left+right)/2; 11 while(left<=right) 12 {
13 if(c[mid] < n) 14 left = mid + 1; 15 else if(c[mid] > n) 16 right = mid - 1; 17 else return mid; 18 mid = (left+right)/2; 19 } 20 return left; 21 } 22 int main() 23 {
24 int i,j,len; 25 scanf("%d",&m); 26 while(m--) 27 {
28 scanf("%d",&n); 29 for(i = 0; i < n; i++) 30 scanf("%d",&a[i]); 31 c[0] = -1; 32 c[1] = a[0]; 33 len = 1; 34 for(i = 1; i < n; i++) 35 {
36 j = find(c,len,a[i]); 37 c[j] = a[i]; 38 if(j > len) 39 len++; 40 } 41 printf("%d\n",len); 42 } 43 return 0; 44 }

代码中的注释是我的个人理解。

转载于:https://www.cnblogs.com/lzxskjo/archive/2012/04/02/2430533.html

你可能感兴趣的文章
快速排序
查看>>
const变量存储位置及const指针
查看>>
MFC 加载链接库(DLL)错误
查看>>
线性代数的视角理解LSR(least square regression)的参数评估算法本质
查看>>
HDU-2897 邂逅明下
查看>>
牛客暑假多校第二场 F trade
查看>>
Java 8 中的 Streams API 详解
查看>>
一道看似简单的sql需求(转)
查看>>
Eclipse+Maven命令创建webapp项目<三>
查看>>
Fiddler 教程(转)
查看>>
[十二省联考2019] 异或粽子
查看>>
CF360B Levko and Array (二分查找+DP)
查看>>
RQNOJ659 计算系数
查看>>
HTML实体符号查询
查看>>
【转】 ASP.NET网站路径中~(波浪线)解释
查看>>
oracle根据Date字段查询区间数据(转)
查看>>
[C语言] 数据结构-算法效率的度量方法-事前分析估算方法
查看>>
js_实用
查看>>
基础权限管理
查看>>
navicat for mysql快捷键
查看>>