社区讨论
[NOIP2000 提高组] 乘积最大
P1018[NOIP 2000 提高组] 乘积最大参与者 2已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @lo8wcvqv
- 此快照首次捕获于
- 2023/10/28 01:38 2 年前
- 此快照最后确认于
- 2023/10/28 01:38 2 年前
这道题怎么加高精度???
CPP/*****************************************
备注:
******************************************/
#include <queue>
#include <math.h>
#include <stack>
#include <stdio.h>
#include <iostream>
#include <vector>
#include <iomanip>
#include <string.h>
#include <algorithm>
using namespace std;
#define int long long
const int N = 2000;
const int INF = 100003;
int a[1001][1001],f[1001][1001];
int s;
int n,m;
int max(int a, int b)
{
return a>b?a:b;
}
signed main(){
cin>>n>>m;
cin>>s;
for(int i=n;i>=1;i--)
{
a[i][i]=s%10;
s/=10;
}
for(int i=2;i<=n;i++)
{
for(int j=i-1;j>=1;j--)
{
a[j][i]=a[j][i-1]*10+a[i][i];
}
}
for(int i=1;i<=n;i++)
{
f[i][0]=a[1][i];
}
for(int k=1;k<=m;k++)
{
for(int i=k+1;i<=n;i++)
{
for(int j=k;j<i;j++)
{
f[i][k]=max(f[i][k],f[j][k-1]*a[j+1][i]);
}
}
}
cout<<f[n][m]<<endl;
return 0;
}
回复
共 2 条回复,欢迎继续交流。
正在加载回复...