(注意大數模擬)最佳加法表示式

2021-08-22 16:16:33 字數 1317 閱讀 7526

傳送門:最佳加法表示式

描述

給定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 ...