UVa 10520【递推 搜索】
生活随笔
收集整理的這篇文章主要介紹了
UVa 10520【递推 搜索】
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
UVa 10520
哇!簡直惡心的遞推,生推了半天。。感覺題不難,但是惡心,不推出來又難受。。一不小心還A了[]~( ̄▽ ̄)~*,AC的猝不及防。。。
先遞推求出f[i][1](1<=i<=n-1),f[n][i](2<=i<=n)和f[i][j](2<=i<=n-1,1<=j<=i),再遞推一次求f[1][j](2<=j<=n),f[1][n]即為答案。其實不太肯定這樣是否一定正確,因為我沒有特別考慮j=0的邊界情況,感覺好像也用不到這個情況。而且要用long long,剛開始用int會WA。
Reference Code:
1 #include<iostream>
2 #include<cstdio>
3 #include<cstring>
4 #include<algorithm>
5 using namespace std;
6 typedef long long ll;
7 ll f[30][30]={0};
8
9 int main()
10 {
11 int n,an1;
12 while(scanf("%d%d",&n,&an1)==2)
13 {
14 memset(f,0,sizeof(f));
15 f[n][1]=an1;
16 for (int i=n-1;i>=1;i--){
17 f[i][1]=f[i+1][1]*2;
18 }
19 for(int i=2;i<=n;i++){
20 f[n][i]=f[n][i-1]*2;
21 }
22 for(int i=n-1;i>=2;i--){
23 for(int j=1;j<=i;j++){
24 for(int k1=i+1;k1<=n;k1++){
25 f[i][j]=max(f[i][j],f[k1][1]+f[k1][j]);
26 }
27 ll t=0;
28 for(int k2=1;k2<j;k2++){
29 t=max(t,f[i][k2]+f[n][k2]);
30 }
31 f[i][j]+=t;
32 }
33 }
34 for(int j=2;j<=n;j++){
35 for(int k=1;k<j;k++){
36 f[1][j]=max(f[1][j],f[1][k]+f[k+1][j]);
37 }
38 }
39 cout<<f[1][n]<<endl;
40 }
41 return 0;
42 }
UVa 10520 遞推
后來又看到了有人用深搜寫,感覺其實好理解點而且不用想他們之間的遞推關系,按照要求往下搜就好,省點腦子,比賽的時候適合這種寫法。
Reference Code:
1 #include<iostream>
2 #include<cstdio>
3 #include<cstring>
4 #include<algorithm>
5 using namespace std;
6 typedef long long ll;
7 ll f[25][25]={0};
8 ll n,a;
9
10 ll calc(int i,int j)
11 {
12 if(f[i][j]!=-1)
13 return f[i][j];
14 if(i<j){
15 ll Max=0;
16 for(int k=i;k<j;k++){
17 ll tmp=calc(i,k)+calc(k+1,j);
18 Max=max(Max,tmp);
19 }
20 return f[i][j]=Max;
21 }
22 ll Max1=0,Max2=0;
23 if(i<n){
24 for(int k=i+1;k<=n;k++){
25 ll tmp=calc(k,1)+calc(k,j);
26 Max1=max(Max1,tmp);
27 }
28 }
29 if(j>0){
30 for(int k=1;k<j;k++){
31 ll tmp=calc(i,k)+calc(n,k);
32 Max2=max(Max2,tmp);
33 }
34 }
35 return f[i][j]=Max1+Max2;
36 }
37 int main()
38 {
39 while(cin>>n>>a)
40 {
41 memset(f,-1,sizeof(f));
42 f[n][1]=a;
43 f[1][n]=calc(1,n);
44 cout<<f[1][n]<<endl;
45 }
46 return 0;
47 }
UVa 10520 深搜
總結
以上是生活随笔為你收集整理的UVa 10520【递推 搜索】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 发现了一个很好的做excel、ppt 水
- 下一篇: 兴业加菲猫卡阿莲情侣版怎么样?特色优惠有