• wikioi 1017 乘积最大


    dp[i][j]=max(dp[i][j],dp[t][k-1]*mapn[t+1][i]);

    dp[i][j]代表从0-i之间有j个乘号,mapn[i][j]表示第i位到第j位的数究竟是多少

     1 #include <cstdio>
     2 #include <cmath>
     3 #include <cstring>
     4 #include <ctime>
     5 #include <iostream>
     6 #include <algorithm>
     7 #include <set>
     8 #include <vector>
     9 #include <sstream>
    10 #include <queue>
    11 #include <typeinfo>
    12 typedef long long ll;
    13 using namespace std;
    14 char str[10010];
    15 ll mapn[50][50];
    16 int main()
    17 {
    18     int n,m;
    19     cin>>n>>m;
    20     cin>>str;
    21     for(int i=0;i<n;i++)
    22     {
    23         int mm;
    24         mm=0;
    25         for(int j=i;j<n;j++)
    26         {
    27             mm=mm*10+str[j]-'0';
    28             mapn[i][j]=mm;
    29         }
    30     }
    31     ll dp[51][10];
    32     memset(dp,0,sizeof(dp));
    33     for(int i=0;i<n;i++)
    34         dp[i][0]=mapn[0][i];
    35     for(int i=0;i<n;i++)
    36     {
    37         for(int k=1;k<=m;k++)
    38         {
    39             for(int t=0;t<i;t++)
    40             {
    41                 dp[i][k]=max(dp[i][k],dp[t][k-1]*mapn[t+1][i]);
    42             }
    43         }
    44     }
    45     cout<<dp[n-1][m]<<endl;
    46     return 0;
    47 }
  • 相关阅读:
    seajs快速了解
    lazyload.js详解
    iScroll-js—“smooth scrolling for the web”
    Backbone学习笔记一Backbone中的MVC
    JMH基准测试框架
    idea 下运行安卓项目
    安卓
    C++
    看完
    四叉树的js实现
  • 原文地址:https://www.cnblogs.com/qscqesze/p/4011002.html
Copyright © 2020-2023  润新知