问题标题: 洛谷:洛谷题20求调

0
0
已解决
李牧晓
李牧晓
中级天翼
中级天翼
#include<bits/stdc++.h> 
using namespace std; 
int n,k,f[15][15],num[15][15]; 
string s; 
int main(){ 
    cin>>n>>k;
    cin>>s; 
    s=" "+s; 
    for(int i=1;i<=n;i++){ 
        for(int j=i;j<=n;j++){ 
            num[i][j]=num[i][j-1]*10+s[j]-'0'; 
        } 
    } 
    for(int i=1;i<=n;i++) f[i][0]=num[1][i];
    for(int i=1;i<=n;i++){ 
        for(int j=1;j<=k;j++){ 
            for(int x=j;x<=i-1;x++){ 
                f[i][j]=max(f[x][j-1]*num[x+1][i],f[i][j]); 
            } 
        } 
    } 
    cout<<f[n][k]; 
    return 0; 
}

五彩斑斓 

李牧晓在2023-04-11 21:57:26追加了内容

更新一些

二彩斑斓

李牧晓在2023-04-11 21:58:20追加了内容
#include<bits/stdc++.h> 
using namespace std; 
int n,k,f[55][55],num[55][55]; 
string s; 
int main(){ 
    cin>>n>>k;
    cin>>s; 
    s=" "+s; 
    for(int i=1;i<=n;i++){ 
        for(int j=i;j<=n;j++){ 
            num[i][j]=num[i][j-1]*10+s[j]-'0'; 
        } 
    } 
    for(int i=1;i<=n;i++) f[i][0]=num[1][i];
    for(int i=1;i<=n;i++){ 
        for(int j=1;j<=k;j++){ 
            for(int x=j;x<=i-1;x++){ 
                f[i][j]=max(f[x][j-1]*num[x+1][i],f[i][j]); 
            } 
        } 
    } 
    cout<<f[n][k]; 
    return 0; 
}

 


0
已采纳
朱欣然
朱欣然
高级守护
高级守护

数据范围,要用高精度

0
我要回答