poj 1179 循环dp 类似矩阵连乘
来源:互联网 发布:tgp优化dnf 编辑:程序博客网 时间:2024/06/18 14:33
#include<cstdio>#include<cstring>#define MAX(x,y) ((x)>(y)?(x):(y))#define MIN(x,y) ((x)>(y)?(y):(x))#define INF 0x3f3f3f3fint dp1[60][60];int dp2[60][60];int main(){int n;char lo[60][3];int d[60];scanf("%d",&n);for(int i=0;i<n;i++)scanf("%s%d",lo[i],&d[i]);for(int i=0;i<n;i++)dp1[i][i]=dp2[i][i]=d[i];for(int len=1;len<n;len++){for(int i=0;i<n;i++){int tmax=-INF,tmin=INF;int j=(i+len)%n;for(int m=0;m<len;m++){int p1=(i+m)%n;int p2=(i+m+1)%n;if(lo[p2][0]=='t'){tmax=MAX(tmax,dp1[i][p1]+dp1[p2][j]);tmin=MIN(tmin,dp2[i][p1]+dp2[p2][j]);}else{tmax=MAX(tmax,dp1[i][p1]*dp1[p2][j]);tmax=MAX(tmax,dp2[i][p1]*dp2[p2][j]);tmax=MAX(tmax,dp1[i][p1]*dp2[p2][j]);tmax=MAX(tmax,dp2[i][p1]*dp1[p2][j]);tmin=MIN(tmin,dp1[i][p1]*dp1[p2][j]);tmin=MIN(tmin,dp2[i][p1]*dp2[p2][j]);tmin=MIN(tmin,dp1[i][p1]*dp2[p2][j]);tmin=MIN(tmin,dp2[i][p1]*dp1[p2][j]);}}dp1[i][j]=tmax;dp2[i][j]=tmin;}}int res=-INF;for(int i=0;i<n;i++){int j=(i+n-1)%n;res=MAX(res,dp1[i][j]);}printf("%d\n",res);for(int i=0;i<n;i++){int j=(i+n-1)%n;if(res==dp1[i][j])printf("%d ",i+1);}printf("\n");}
0 0
- poj 1179 循环dp 类似矩阵连乘
- POJ 1179 Polygon(环形DP 矩阵连乘)
- DP---矩阵连乘
- DP+矩阵连乘
- DP--矩阵连乘
- 矩阵连乘 DP
- dp矩阵连乘
- 矩阵连乘DP
- poj 1651 区间dp+矩阵连乘DP
- POJ 1651 Multiplication Puzzle (区间dp 矩阵连乘)
- DP 矩阵连乘问题
- 矩阵连乘DP模型
- zoj1276矩阵连乘dp
- 矩阵连乘问题 DP
- DP---矩阵连乘问题
- 矩阵连乘问题 DP
- dp:矩阵连乘问题
- poj 1651 矩阵连乘
- PHP命名规范
- vmware下 linux如何扩展根目录
- 【C语言训练】舍罕王的失算
- 记一次坑爹的ReactNative应用集成推送
- Main函数中参数argc,argv说明
- poj 1179 循环dp 类似矩阵连乘
- D3.js中初始化缩放比例
- 虚拟机中的Ubuntu16.04启动时自动设置分辨率1920x1080
- Linux 编译安装nginx
- 【OpenGL ES】Hello Triangle
- java_高级_文件与流
- bzoj[1191]: [HNOI2006]超级英雄Hero
- linux下用户的增删
- hiho最小生成树一(prim)算法