目录
$Luogu\ P1063$ 能量项链$(\ √\ )$
$Luogu\ P1064$ 金明的预算方案( )
$Luogu\ P1065$ 作业调度方案( )
$Luogu\ P1066$ $2^k$进制数( )
$Luogu\ P1063$ 能量项链
$DP$挺简单的,就$f[i][j]$表示从第$i$颗珠子合并到第$j$颗珠子的最大答案,暴力枚举转移即可
1 #include<iostream> 2 using namespace std; 3 int head[205],tail[205],f[205][205]={0}; 4 int main(){ 5 int ans=0,n,i,t,j,k; 6 cin>>n; 7 for(i=1;i<=n;i++){cin>>head[i];head[i+n]=head[i];} 8 for(i=1;i<=2*n-1;i++) tail[i]=head[i+1];tail[2*n]=head[1]; 9 for(i=1;i<=2*n-1;i++) f[i][i]=0; 10 for(t=1;t<=n-1;t++) 11 for(i=1;i<=2*n-t;i++){ 12 j=i+t; 13 for(k=i;k<=j-1;k++) 14 f[i][j]=max(f[i][j],f[i][k]+f[k+1][j]+head[i]*tail[k]*tail[j]); 15 } 16 for(i=1;i<=n;i++) ans=max(ans,f[i][i+n-1]); 17 cout<<ans<<endl; 18 return 0; 19 }
$Luogu\ P1064$ 金明的预算方案
$Luogu\ P1065$ 作业调度方案
$Luogu\ P1066$ $2^k$进制数