nyist 737 인접 돌 합병 문제
1046 단어 문제.
동적 계획 상태 방정식:
dp[i][j]=d[i][k]+dp[k+1][j]+(sum[k]-sum[i-1])+(sum[j]-sum[k])
경계: 0 < = i, j < = n, i < = k < j
if(i==j) dp[i][j]=0;
sum [i] = 앞 i 개수 의 합.
#include <iostream>
#include <cstring>
using namespace std;
int dp[205][205],a[205],sum[205];
int f(int i,int j)
{
int k,ans;
if(dp[i][j]>=0) return dp[i][j];
if(i==j) return dp[i][j]=0;
for(k=i;k<j;k++)
{
if(dp[i][j]<0) dp[i][j]=1000000005;
ans=f(i,k)+f(k+1,j)+(sum[k]-sum[i-1])+(sum[j]-sum[k]);
if(ans<dp[i][j]) dp[i][j]=ans;
}
return dp[i][j];
}
int main(int argc, char *argv[])
{
int n,i,j,k;
while(cin>>n)
{
for(i=1;i<=n;i++) {cin>>a[i];sum[i]=a[i]+sum[i-1];}
memset(dp,-1,sizeof(dp));
cout<<f(1,n)<<endl;
}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
디지털 통계 문제한 권의 책의 페이지 번호는 자연수 1부터 자연수 n까지 순서대로 인코딩된다.책의 페이지 번호는 통상적인 습관에 따라 배열되며, 매 페이지 번호는 여분의 전도 숫자 0을 포함하지 않는다.예를 들어 6페이지는 06이나...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.