Super Jumping! Jumping! Jumping!
来源:互联网 发布:域名城,潇湘华 编辑:程序博客网 时间:2024/05/08 06:50
http://acm.hdu.edu.cn/showproblem.php?pid=1087
//居然没超时
#include<stdio.h>
#include<string.h>
int dp[5000000];
int main()
{
int n,a[1010],i,j,max;
while(scanf("%d",&n),n)
{
for(i=0;i<n;i++)
scanf("%d",a+i);
memset(dp,0,sizeof(dp));
for(i=0;i<n;i++)
{
dp[a[i]]=a[i];
// printf("dp[%d]=%d\n",a[i],a[i]);
max=0;
for(j=1;j<a[i];j++)
{
if(dp[j]>max)
max=dp[j];
// printf("dp[%d]=%d\n",a[i],dp[a[i]]);
}
dp[a[i]]+=max;
}
max=0;
for(i=1;i<=5000000;i++)
if(dp[i]>max)
max=dp[i];
printf("%d\n",max);
}
return 0;
}
#include<stdio.h>
#include<string.h>
#define max(x,y) x>y?x:y
int main()
{
int a[1010],dp[1010],n,i,j,max1,max2;
while(scanf("%d",&n),n)
{
for(i=0;i<n;i++)
scanf("%d",a+i);
memset(dp,0,sizeof(dp));
max2=a[0];
for(i=0;i<n;i++)
{
max1=0;
for(j=0;j<i;j++)
if(a[j]<a[i])
max1=max(max1,dp[j]);
dp[i]=a[i]+max1;
if(dp[i]>max2)
max2=dp[i];
}
printf("%d\n",max2);
}
return 0;
}
- Super Jumping! Jumping! Jumping!
- Super Jumping! Jumping! Jumping!
- Super Jumping! Jumping! Jumping!
- Super Jumping! Jumping! Jumping!
- Super Jumping! Jumping! Jumping!
- Super Jumping! Jumping! Jumping!
- Super Jumping! Jumping! Jumping!
- Super Jumping! Jumping! Jumping!
- Super Jumping! Jumping! Jumping!
- Super Jumping! Jumping! Jumping!
- Super Jumping! Jumping! Jumping!
- Super Jumping! Jumping! Jumping!
- Super Jumping! Jumping! Jumping!
- Super Jumping! Jumping! Jumping!
- Super Jumping! Jumping! Jumping!
- Super Jumping! Jumping! Jumping!
- Super Jumping! Jumping! Jumping!
- Super Jumping! Jumping! Jumping!
- Linux下Perl的安装
- [IOS]手势识别(双击、捏、旋转、拖动、划动、长按)
- LoadRunner中参数化技术详解
- 嵌入式 fprintf和fscanf函数
- 第二章 表达式与运算符
- Super Jumping! Jumping! Jumping!
- Android开发(31) 布局文件中tools:context=".MainActivity的作用
- 源码分析--AsyncTask
- 数据仓库之 ETL
- vmplayer7安装OSX10.10
- java基础:线程同步
- unity3d shader 0,0,0,1 为透明
- 黑马程序员——IO流--Properties类、打印流等常见类
- 海思3515,交叉编译opencv2.4.9,个人经验分享,欢迎补充