本文主要是介绍HUD 1003/HDU 1081:动态规划之最大子序列和+最大矩阵和,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
最大子序列和:HDU 1003 Max Sum
用动态规划的思想,求解前i个数能获得的最大和,当sum<0的时候,再加上a[i]就不如直接要a[i](不管a[i]是正是负),所以if sum < 0 then sum = 0,from = i+1;这里要更新起点
如果sum > ans则更新ans和起点、终点。
//Must so
#include<iostream>
#include<algorithm>
#include<cstdio>
#define mem(a,x) memset(a,x,sizeof(a))
#define sqrt(n) sqrt((double)n)
#define pow(a,b) pow((double)a,(int)b)
#define inf 1<<29
#define NN 1000006
using namespace std;
const double PI = acos(-1.0);
typedef long long LL;int main()
{int T;cin>>T;int kas = 1;while (T--){int n;cin>>n;int ans = -inf;int f,t;for (int i = 1,from = 1,to = 1,sun = 0,x;i <= n;i++){to
这篇关于HUD 1003/HDU 1081:动态规划之最大子序列和+最大矩阵和的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!