題目概述:
求所有的嚴格上公升子串行的最大和。
大致思路:
有點類似於求最長上公升子串行。
用dp解決。
令f[i]表示前i個數中所有嚴格上公升子串行的最大和,轉移方程為:
邊界條件為f[i]=a[i].
複雜度分析:
很容易看出dp的複雜度為o(n²),總複雜度為o(t*n²)
**:
1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11using
namespace
std;
1213
#define sacnf scanf
14#define maxn 1010
15#define inf 1061109567
16#define eps 0.001
17#define pi 3.1415927
18#define mod 1000000007
19void swap(int &a,int &b)
20int abs(int x)
21 typedef long
long
ll;22
23ll f[maxn];
2425
inta[maxn];
2627
intmain()
2841
for(int i=1;i<=n;i++)
4249
}50 ans=max(ans,f[i]);51}
52 printf("
%lld\n
",ans);53}
54//
clock_t ed=clock();
55//
printf("\n\ntime used : %.5lf ms.\n",(double)(ed-st)/clocks_per_sec);
56return0;
57 }
動態規劃 hdoj 1087解題報告
hdoj 1087 super jumping jumping jumping 題意大致是求乙個數列的單調遞增子列的和的最大值。資料只有1000,因此隨便dp一下就好。思路 令b 1,n 為數列,a i 為以b i 為最後一項的和最大的子串行。因此有遞推公式 a 0 0 a i max a j b ...
CF 1087解題報告
做出 t1 rating 97 想起幾個月前做不出t1還是有點小搞笑呀2333 雙指標 特判 發現k特別小,列舉剩餘系 還要判斷是否是能被n整除 移項發現可以算出整除是多少 然後 整除 k 剩餘數 n 算出答案,複雜度 o k 大力貪心 先算出a b之間的路徑,由於路徑不唯一 每次抉擇最多有兩種,變...
解題報告 hdoj1069(動態規劃)
大概題意 猴子想拿到房頂的香蕉,有幾種不同的block可用,每種可用若干個,每種block有三個引數 x,y,z。猴子可以將面積大的放下層,然後再放上乙個面積小的,然後 這樣可以增加最後能達到的高度。但是有個要求 上面的block的長和寬都必須嚴格的小於下面的block。每個block的兩個引數當做...