noip2000 乘積最大

2021-08-20 23:29:18 字數 652 閱讀 3270

題目:乘積最大(無高精度)

思路:f[i,k]表示前i個數劃分為k個部分獲得的最大乘積。

num[i,j]表示從i到j的字元拼成的整數。

轉移方程:f[i,k]=max 。

[1,i]這一段數由j處被分為[1,j],[j+1,i]兩段,其中規定[1,j]這一段在之前的操作中已經被分為k-1段。

注意邊界條件:f[j][1]=num[1][j]。

**:

#includeusing namespace std;

#define maxn 10

#define maxk 6

#define ll long long

int n,k;

int a[maxn+5]= ;

ll num[maxn+5][maxn+5]=; //num(i,j):i到j的數

ll f[maxn+5][maxn+5]= ; //f(i,k):前i個數被分為k段

void readin() }}

void init()

} for(int j=1;j<=k+1;j++) f[j][1]=num[1][j];

}ll dp()

} }return f[n][k+1];

}int main()

NOIP2000 乘積最大

題二 乘積最大 22分 問題描述 今年是國際數學聯盟確定的 2000 世界數學年 又恰逢我國著名數學家華羅庚先生誕辰90周年。在華羅庚先生的家鄉江蘇金壇,組織了一場別開生面的數學智力競賽的活動,你的乙個好朋友xz也有幸得以參加。活動中,主持人給所有參加活動的選手出了這樣一道題目 設有乙個長度為n的數...

Noip 2000 乘積最大

今年是國際數學聯盟確定的 2000 世界數學年 又恰逢我國著名數學家華羅庚先生誕辰90周年。在華羅庚先生的家鄉江蘇金壇,組織了一場別開生面的數學智力競賽的活動,你的乙個好朋友xz也有幸得以參加。活動中,主持人給所有參加活動的選手出了這樣一道題目 設有乙個長度為n的數字串,要求選手使用k個乘號將它分成...

2000 NOIP 乘積最大

今年是國際數學聯盟確定的 2000 世界數學年 又恰逢我國著名數學家華羅庚先生誕辰90周年。在華羅庚先生的家鄉江蘇金壇,組織了一場別開生面的數學智力競賽的活動,你的乙個好朋友xz也有幸得以參加。活動中,主持人給所有參加活動的選手出了這樣一道題目 設有乙個長度n的數字串,要求選手使用k個乘號將它分成k...