hdu 2372 El Dorado(dp)
来源:互联网 发布:向日葵之夜 知乎 编辑:程序博客网 时间:2024/06/06 17:17
http://acm.hdu.edu.cn/showproblem.php?pid=2372
题意:给一个序列,求长度为k的递增子序列的个数。
思路:开始敲的最长上升子序列模板加组合数学,无限WA,是由于n太大了(100)。后来看了看解题报告。
dp[ i ][ j ] 表示以i结尾的长度为j 的最多子串个数.
dp[i][j] += dp[g][j-1] (其中 j-1 <= g <= i && a[g] < a[i])
#include <stdio.h>#include <string.h>#include <algorithm>#define LL __int64using namespace std;int main(){int n,k;int a[110];LL dp[110][110],ans;while(~scanf("%d %d",&n,&k)){if(!n && !k) break;memset(dp,0,sizeof(dp));for(int i = 1; i <= n; i++){scanf("%d",&a[i]);dp[i][1] = 1;}ans = 0;for(int i = 1; i <= n; i++) //以i结尾{for(int j = 1; j <= i; j++)//长度为j的上升子序列由长度为j-1的上升子序列求出{for(int g = j-1; g < i; g++)//枚举长度为j-1的上升子序列的终点{if(a[g] < a[i])dp[i][j] += dp[g][j-1];}}}for(int i = 1; i <= n; i++)//最后要将所有 上升子序列长度为k的相加ans += dp[i][k];printf("%I64d\n",ans);}return 0;}
0 0
- hdu 2372 El Dorado(dp)
- HDU 2372 El Dorado(DP)
- hdoj 2372 El Dorado
- El Dorado 2010.3.6
- DORADO
- 内部比赛 E El Dorado
- HDU DP
- DP? HDU
- DP? HDU
- DP? HDU
- 【dp】HDU
- 【dp】HDU
- 【dp】 HDU
- DP? HDU
- dorado是什么?
- dorado 产品简介
- dorado简介
- dorado简介
- 关于JAVA里面赋值的问题
- cocos2d-x v3.0beta2使用cocostudio制作的动画
- UIButton 触发多个事件 响应同一函数
- 迷宫之广度优先搜索
- 使用Aspose.Cells生成Excel
- hdu 2372 El Dorado(dp)
- poj1273 Drainage Ditches
- asp.net c# 打开新页面或页面跳转
- 使用xcode4.2检测内存泄露leak的具体位置的两种方法总结 .
- hdu 2553 N皇后问题 DFS
- Spring mvc中@RequestMapping 6个基本用法小结
- WIN_静态库与动态库
- 零拷贝
- 在DateTimePicker上显示星期几