zoukankan      html  css  js  c++  java
  • 1821:【00NOIP提高组】乘积最大

    //dp QAQ 
    #include<bits/stdc++.h>
    using namespace std;
    long long a[11][11],f[11][11];
    long long s;
    int main()
    {
        int n,K,p,i,j,k;
        cin>>n>>K;
        cin>>s;
        for(i=n;i>=1;i--)
        {
            a[i][i]=s%10;
            s/=10;
        }
        for(i=2;i<=n;i++)
         for(j=i-1;j>=1;j--)
          a[j][i]=a[j][i-1]*10+a[i][i];
        for(i=1;i<=n;i++)
         f[i][0]=a[1][i];
        for(k=1;k<=K;k++)//先枚举阶段 
        {
            for(i=k+1;i<=n;i++)//状态(阶段变量,我也不知道是啥) 
             for(j=k;j<i;j++)//决策,即断点。这些都是一个一天到晚看电脑皮肤贼差的dalao告诉我的我自己也不知道我打的是啥 
             f[i][k]=max(f[i][k],f[j][k-1]*a[j+1][i]);     
         } 
        cout<<f[n][K];
        return 0;
    }
  • 相关阅读:
    DLX
    逆康托展开
    康托展开
    light oj 1427(ac自动机)
    hdu 2586 (lca-RMQ)
    约瑟夫问题
    C-运算符
    C-数据
    shell-流程控制
    python编程规范-最佳实践
  • 原文地址:https://www.cnblogs.com/smartljy/p/11716111.html
Copyright © 2011-2022 走看看