zoukankan      html  css  js  c++  java
  • nyoj746 整数划分(四)

    整数划分(四)

    时间限制:1000 ms  |  内存限制:65535 KB
    难度:3
    描述

           暑假来了,hrdv 又要留学校在参加ACM集训了,集训的生活非常Happy(ps:你懂得),可是他最近遇到了一个难题,让他百思不得其解,他非常郁闷。。亲爱的你能帮帮他吗?

          问题是我们经常见到的整数划分,给出两个整数 n , m ,要求在 n 中加入m - 1 个乘号,将n分成m段,求出这m段的最大乘积

    输入
    第一行是一个整数T,表示有T组测试数据
    接下来T行,每行有两个正整数 n,m ( 1<= n < 10^19, 0 < m <= n的位数);
    输出
    输出每组测试样例结果为一个整数占一行
    样例输入
    2
    111 2
    1111 2
    样例输出
    11
    121
    AC代码:
     1 #include<iostream>
     2 #include<cstdio>
     3 #include<algorithm>
     4 #include<cstring>
     5 #include<string>
     6 using namespace std;
     7 long long dp[20][20],sum,mmax;
     8 int n,pp[20];
     9 void dfs(int m,int cot,int p)//深度遍历,去掉注释,更容易看出来;
    10 {
    11     if(cot == m)
    12     {
    13         sum=1;
    14         for(int i=0; i<=cot;i++)
    15         {
    16           // cout<<pp[i]<<" "<<pp[i+1]<<endl;
    17            sum*=dp[pp[i]][pp[i+1]];
    18         }
    19     if(sum>mmax)
    20         mmax=sum;
    21     }
    22     else for(int i=p ; i<n ;i++)
    23     {
    24         // cout<<i<<endl;
    25           pp[cot+1]=i;
    26           dfs(m,cot+1,i+1);
    27     }
    28 }
    29 int main()
    30 {
    31     int i,j,k,t,m,nn[25];
    32     char s[25];
    33     cin>>t;
    34     while(t--)
    35     {
    36         memset(dp, 0, sizeof(dp));
    37         mmax=0;
    38         cin>>s>>m ;
    39         int len=strlen(s);
    40         for(i=0; i<len; i++)//先转化为单个的整型
    41             nn[i]=s[i]-'0';
    42         pp[m]=len;n=len;
    43         for(i=0 ; i<=len ; i++)
    44             for(j=i+1 ; j<=len ; j++)
    45                for(k=i; k<j ; k++)
    46                  dp[i][j]=dp[i][j]*10+nn[k];//截取从i到j的一段,转化为long long
    47         dfs(m-1,0,1);
    48         cout<<mmax<<endl;
    49     }
    50     return 0;
    51 }
  • 相关阅读:
    Python 存储引擎 数据类型 主键
    Python 数据库
    Python 线程池进程池 异步回调 协程 IO模型
    Python GIL锁 死锁 递归锁 event事件 信号量
    Python 进程间通信 线程
    Python 计算机发展史 多道技术 进程 守护进程 孤儿和僵尸进程 互斥锁
    Python 异常及处理 文件上传事例 UDP socketserver模块
    Python socket 粘包问题 报头
    Django基础,Day7
    Django基础,Day6
  • 原文地址:https://www.cnblogs.com/lovychen/p/3651510.html
Copyright © 2011-2022 走看看