DP
文章平均质量分 62
丶阿明
Hello World!
展开
-
HDU 2084 数塔
分析:大水题,看代码。 # include # include # define Max(x,y) (x>y?x:y) int main() { int i,j,n,t,max,a[105][105],dp[105][105]; scanf("%d",&t); while(t--) { scanf("%d",&n);原创 2015-08-18 10:31:35 · 630 阅读 · 0 评论 -
HDU 5280 Senior's Array
分析:给你n个数字,和一个p,让你改变n个数中的一个数为p,使得最长连续子序列之和最大。因为n不大,# include __int64 MAX(int n,int a[1005]) { __int64 i,sum=0,ans=-1e9; for(i=0;i<n;i++) { sum+=a[i]; if(sum>a原创 2015-08-18 10:27:39 · 626 阅读 · 0 评论 -
HDU 5256 序列变换
分析:因为要改变最少的数,使得数组a,成为严格递增,也就是使得a[i+1]>=a[i]+1,即a[i+1]-(i+1)>=a[i]-i。所以令a[i]=a[i]-1,原题就变成了改变最少的数,使得新数组a[i]-=i,不递减,即a[i+1]>=a[i],那么我们只需找出最多已满足条件的元素(即最长不递减子序列),再用总的个数减一下就能得出答案。如何求最长不递减子序列呢?我们用数组b[i]来表示:不原创 2015-09-25 21:00:15 · 557 阅读 · 0 评论 -
HDU 1081 To The Max
分析:题意是给你一个整型二维数组,让你求总和最大的子矩形。解法是将 求一维数组的最大的连续子序列 扩展成二维。 这是求一维数组的最大的连续子序列的代码: # include int main() { int i,n,sum,max,a[100]; while(scanf("%d",&n)!=EOF) { for(i=0;i<n;i++) scanf原创 2015-06-02 20:12:37 · 458 阅读 · 0 评论