傳送門:最佳加法表示式
描述
給定n個1到9的數字,要求在數字之間擺放m個加號(加號兩邊必須有數字),使得所得到的加法表示式的值最小,並輸出該值。例如,在1234中擺放1個加號,最好的擺法就是12+34,和為36
輸入
有不超過15組資料
每組資料兩行。第一行是整數m,表示有m個加號要放( 0<=m<=50)
第二行是若干個數字。數字總數n不超過50,且 m <= n-1
輸出
對每組資料,輸出最小加法表示式的值
樣例輸入
2
123456
1123456
412345
樣例輸出
102
57915
提示要用到高精度計算,即用陣列來存放long long 都裝不下的大整數,並用模擬列豎式的辦法進行大整數的加法。
**guo wei
題解:該題處理思路先放乙個加號:可以先放最右邊的加號,右邊固定,左邊放加號最小。要避免重複計算:將數預處理存起來,num(i,j)表示從第i個數字到第j個數字所組成的數。
狀態陣列v[i][j]表示i個加號放到前j個數字中間,所能得到的最佳表示式的值。
}//另一種寫法
/* bigint operator+(const bigint &n)
return false;}}
bigint()
bigint(const char *n,int l)
v[i][j]=tmpmin;}}
}cout<
}return 0;
}
最佳加法表示式
有乙個由1.9組成的數字串.問如果將m個加 號插入到這個數字串中,在各種可能形成的 表示式中,值最小的那個表示式的值是多少?思路 設定dp i j i表示為加號的個數,j表示到達陣列的第 include include include includeusing namespace std const...
最佳加法表示式
總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 ...