摘要:
这题想了很久,是经典的动态规划问题,感觉有点难度,在网上看了很多讨论。 看了动态规划还要好好加强。#include <iostream>using namespace std;int main(){ long i,j,k,l,n,m,t1,maxf,count; long p[210],d[210],f[210],s[210]; long can[30]; long res[30][1000],from[30][1000]; count=0; cin>>n>>m; while(n!=0 || m!=0) { count++... 阅读全文
posted @ 2010-11-27 19:56
yangleo
阅读(277)
评论(0)
推荐(0)
摘要:
这题很简单,直接贴AC代码了#include <iostream>#include <string.h>#define MAXN 10000using namespace std;int num[MAXN];int dnum(int i){ int sum = i; int temp; while (i > 0) { temp = i%10; sum += temp; i = (i-temp)/10; } return sum;}int main(){ int i,j; for (i = 0;i<MAXN;i++) { num[i] = 1; } for ( 阅读全文
posted @ 2010-11-27 16:24
yangleo
阅读(179)
评论(0)
推荐(0)
摘要:
在输入的同时,进行一次DP,计算出从左到右的最大值,并把它保存在数组dp的对应的下标元素中,这样之后,对于下标为i的元素,它其中保存的便是前面所有元素可能的最大连续和。再从右到左进行一次DP,计算从右到左的最大连续和。假设此时已经算到下标为i的元素,那么将sum+dp[i-1]与ans进 行比较,将ans取较大者。最后当i到2的时候ans中的值即为所求的最大值。#include <iostream>using namespace std;int dp[100001],num[100001];const int MINNUM = -99999999;int main(){ int c 阅读全文
posted @ 2010-11-27 15:31
yangleo
阅读(394)
评论(0)
推荐(0)
浙公网安备 33010602011771号