• 洛谷P1388 算式


    洛谷P1388 算式
    这题写得有点乱了
    主要要注意 f[i][j][k] j-i < k 是不存在的 不能单纯的设为负值
    因为两个负值相乘就变成正数了,所以不行

     1 #include <cstdio> 
     2 #define For(i,j,k) for(int i=j;i<=k;i++) 
     3 #define Dow(i,j,k) for(int i=j;i>=k;i--) 
     4 #define LL long long 
     5 using namespace std ; 
     6 
     7 const int N = 111,inf = 1e4 ; 
     8 int n,K ; 
     9 int a[N] ; 
    10 LL sum[N],f[N][N][N] ;  
    11 inline int max(int x,int y) { return x > y ? x : y ; }
    12 inline int min(int x,int y) { return x < y ? x : y ; }
    13 inline int read() 
    14 {
    15     int x = 0 , f = 1 ; 
    16     char ch = getchar() ; 
    17     while(ch<'0'||ch>'9') { if(ch=='-') f = -1 ; ch = getchar(); } 
    18     while(ch>='0'&&ch<='9') { x = x * 10+ch-48 ; ch = getchar(); } 
    19     return x * f ; 
    20 }
    21 
    22 int main() 
    23 {
    24     n = read() ; K = read() ; 
    25     For(i,1,n) a[i]=read() , sum[i]=sum[i-1]+a[i] ; 
    26     For(i,1,n) 
    27       For(j,i,n) 
    28        For(k,0,n) 
    29          if(j-i<k) f[i][j][k] = -inf ; 
    30     For(i,1,n) 
    31       f[i][i][0] = a[i] ; 
    32     For(len,2,n) {
    33       For(i,1,n-len+1) {
    34         int j=i+len-1 ; 
    35         f[i][j][0]=sum[j]-sum[i-1] ; 
    36         For(k,1,min(K,j-i)) 
    37           For(p,i,j-1)  
    38             For(t,0,k) {
    39                 LL p1 = -inf ; 
    40                 if(p-i>=t&&j-p-1>=k-t)LL p1 = f[i][p][t]+f[p+1][j][k-t] ; 
    41                 LL p2 = -inf ; 
    42                 if(t!=k&&p-i>=t&&j-p-1>=k-1-t) p2 = f[i][p][t]*f[p+1][j][k-1-t] ; 
    43                 f[i][j][k]=max(f[i][j][k],max(p1,p2)) ; 
    44             } 
    45       }    
    46     }
    47     printf("%lld
    ",f[1][n][K]) ; 
    48     return 0 ; 
    49 }
  • 相关阅读:
    C++模板的声明与实现分离 编译错误详解
    C语言中数据类型的隐式转换
    UNIX 高手的 10 个习惯
    linux 信号量
    引用与数组
    Linux 的变量命名规则
    .bash_profile和.bashrc的区别(如何设置生效
    URAL 1053 Pinocchio
    URAL 1040 Airline Company
    URAL 1045 Funny Game
  • 原文地址:https://www.cnblogs.com/third2333/p/7624815.html
Copyright © 2020-2023  润新知