zoukankan      html  css  js  c++  java
  • P1018 乘积最大 dp

      

    题目描述

    今年是国际数学联盟确定的“20002000――世界数学年”,又恰逢我国著名数学家华罗庚先生诞辰9090周年。在华罗庚先生的家乡江苏金坛,组织了一场别开生面的数学智力竞赛的活动,你的一个好朋友XZXZ也有幸得以参加。活动中,主持人给所有参加活动的选手出了这样一道题目:

    设有一个长度为NN的数字串,要求选手使用KK个乘号将它分成K+1K+1个部分,找出一种分法,使得这K+1K+1个部分的乘积能够为最大。

    同时,为了帮助选手能够正确理解题意,主持人还举了如下的一个例子:

    有一个数字串:312312, 当N=3,K=1N=3,K=1时会有以下两种分法:

    1、3 imes 12=363×12=36 2、31 imes 2=6231×2=62

    这时,符合题目要求的结果是: 31 imes 2 = 6231×2=62

    现在,请你帮助你的好朋友XZXZ设计一个程序,求得正确的答案。

    输入输出格式

    输入格式:

    程序的输入共有两行:

    第一行共有22个自然数N,KN,K(6≤N≤40,1≤K≤66N40,1K6)

    第二行是一个长度为NN的数字串。

    输出格式:

    结果显示在屏幕上,相对于输入,应输出所求得的最大乘积(一个自然数)。

    输入输出样例

    输入样例#1: 复制
    4  2
    1231
    
    输出样例#1: 复制
    62

    说明

    NOIp2000提高组第二题

    区间dp

    #include<bits/stdc++.h>
    using namespace std;
    //input by bxd
    #define rep(i,a,b) for(int i=(a);i<=(b);i++)
    #define repp(i,a,b) for(int i=(a);i>=(b);--i)
    #define RI(n) scanf("%d",&(n))
    #define RII(n,m) scanf("%d%d",&n,&m)
    #define RIII(n,m,k) scanf("%d%d%d",&n,&m,&k)
    #define RS(s) scanf("%s",s);
    #define ll long long
    #define pb push_back
    #define REP(i,N)  for(int i=0;i<(N);i++)
    #define CLR(A,v)  memset(A,v,sizeof A)
    //////////////////////////////////
    #define inf 0x3f3f3f3f
    const int N=100;
    ll dp[N][N];
    int n,k;
    ll num[N][N];
    int main()
    {
        char s[N];
        RII(n,k);
        RS(s+1);
        rep(i,1,n)
        {
            num[i][i]=s[i]-'0';
            rep(j,i+1,n)
            num[i][j]=num[i][j-1]*10+s[j]-'0';
        }
    
        k++;//题意是加k个乘号 其实就是分成k+1份
    
        rep(i,1,n)
        dp[i][1]=num[1][i];
    
        rep(i,2,n)
        rep(j,2,min(k,i))//分成k分
        rep(s,j-1,i-1)//枚举断点
        dp[i][j]=max(dp[i][j],dp[s][j-1]*num[s+1][i]);
    
        cout<<dp[n][k];
    
        return 0;
    }
    View Code
  • 相关阅读:
    build tools
    文档系统总结
    各进制及其转换详解
    JQuery 函数执行顺序
    计算页面宽高的函数
    Linq中的多表左联,详细语句
    css设置滚动条颜色与样式以及如何去掉与隐藏滚动条
    基于JQUERY写的 LISTBOX 选择器
    js/jquery 实时监听输入框值变化的完美方案:oninput & onpropertychange
    JQuery select控件的相关操作
  • 原文地址:https://www.cnblogs.com/bxd123/p/10864058.html
Copyright © 2011-2022 走看看