有乙個由1..9組成的數字串.問如果將m個加
號插入到這個數字串中,在各種可能形成的
表示式中,值最小的那個表示式的值是多少?
思路:設定dp[i][j],i表示為加號的個數,j表示到達陣列的第
#include#include#include#includeusing namespace std;
const int maxn=1000+10;
char s[maxn];
int d[maxn][maxn];
int num(int i,int j)
int mul(int m,int n)
return ans;
}int main()
}scanf("%d",&m);
ans=mul(m,len);
printf("%d\n",ans);
return 0;
}
幾個數的最小值;可得dp[m][j]=dp[m-1][m->j-1]+sum(a[m+1->j]);
考察點:能正確找到狀態轉移,然後看看是否符合dp的特性
收穫:任何時候都不能放棄,我做這道題糾結了我3天;
經驗:我要想提高自己的成績必須放棄功名,把演算法當成藝術,
演算法是一種藝術;
最佳加法表示式
總time limit 1000ms memory limit 65536kb description 給定n個1到9的數字,要求在數字之間擺放m個加號 加號兩邊必須有數字 使得所得到的加法表示式的值最小,並輸出該值。例如,在1234中擺放1個加號,最好的擺法就是12 34,和為36 input 有...
最佳加法表示式
有乙個由1.9組成的數字串,問如果將m個加號插入到這個數字串中,在各種可能形成的表示式中,值最小的那個表示式的值是多少 輸入 5 3 1 2 3 4 5 輸出 24 解題思路 假定數字串長度是n,新增加號後,表示式的最後乙個加號添在第i個數字後面,那麼整個表示式的最小值,就等於在前i個數字中插入m ...
dp 最佳加法表示式
題意 有乙個由1.9組成的數字串.問如果將m個加號插入到這個數字串中,在各種可能形成的表示式中,值最小的那個表示式的值是多少。分析 假定數字串長度是n,添完加號後,表示式的最後乙個加號新增在第i 個數字後面,那麼整個表示式的最小值,就等於在前i 個數字中插入m 1個加號所能形成的最小值,加上 第i ...