题目:http://poj.org/problem?id=1179

区间DP,值得注意的是有负值,而且有乘法,因此可能会影响最大值;

注意memset中写-1仅仅是-1,-2才是一个很小的负数;

最后找mxx时也要注意可能最大是负值,因此不能随便给mxx赋成0或-1之类。

代码如下:

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int n,a[],mx[][],mn[][],ans[],t,INF=;
bool sid[][];
int main()
{
char dc;
scanf("%d ",&n);
memset(mx,-,sizeof mx);//-1仅是-1!
memset(mn,,sizeof mn);
for(int i=;i<=n;i++)
{
if(i==n)scanf("%c %d",&dc,&a[i]);
else scanf("%c %d ",&dc,&a[i]);
if(dc=='t')sid[i-][i]=;
else sid[i-][i]=;
a[i+n]=a[i];
sid[i-+n][i+n]=sid[i-][i];
mx[i][i]=a[i];mx[i+n][i+n]=a[i];
mn[i][i]=a[i];mn[i+n][i+n]=a[i];
}
for(int l=;l<=n;l++)
for(int i=;i<=n*-l;i++)//
{
int j=i+l-;
for(int k=i;k<j;k++)
{
if(sid[k][k+])
{
mx[i][j]=max(mx[i][j],mx[i][k]+mx[k+][j]);
mn[i][j]=min(mn[i][j],mn[i][k]+mn[k+][j]);
}
else
{
mx[i][j]=max(mx[i][j],mx[i][k]*mx[k+][j]);
mx[i][j]=max(mx[i][j],mn[i][k]*mn[k+][j]);
mx[i][j]=max(mx[i][j],mx[i][k]*mn[k+][j]);
mx[i][j]=max(mx[i][j],mn[i][k]*mx[k+][j]); mn[i][j]=min(mn[i][j],mx[i][k]*mx[k+][j]);
mn[i][j]=min(mn[i][j],mn[i][k]*mn[k+][j]);
mn[i][j]=min(mn[i][j],mx[i][k]*mn[k+][j]);
mn[i][j]=min(mn[i][j],mn[i][k]*mx[k+][j]);
}
}
}
int mxx=-INF;//!-1
// for(int i=1;i<=n;i++)
// {
// if(mx[i][i+n-1]>mxx)
// {
// memset(ans,0,sizeof ans);
// t=1;
// ans[t]=i;
// mxx=mx[i][i+n-1];
// }
// else if(mx[i][i+n-1]==mxx)ans[++t]=i;
// }
// printf("%d\n",mxx);
// for(int i=1;i<=t;i++)
// printf("%d ",ans[i]);
for(int i=;i<=n;i++)
mxx=max(mxx,mx[i][i+n-]);
printf("%d\n",mxx);
for(int i=;i<=n;i++)
if(mx[i][i+n-]==mxx)
printf("%d ",i);
return ;
}

poj1179多边形——区间DP的更多相关文章

  1. 多边形——————区间dp

    原题链接:https://www.acwing.com/problem/content/285/ 题意简单来说就是:给你一个环,断掉一条边使其成为一个链,用这个链跑dp,求最大得分. 首先这不是一道板 ...

  2. Hzoi 2018.2.11多边形 区间DP

    给定一个由N个顶点构成的多边形,每个顶点被赋予一个整数值,而每条边则被赋予一个符号:+(加法运算)或者*(乘法运算),所有边依次用整数1到N标识. 一个多边形的图形表示 首次移动,允许将某条边删除: ...

  3. POJ1179 Polygon 区间DP

    题目大意: 多边形游戏,有N个顶点的多边形,3 <= N <= 50 ,多边形有N条边,每个顶点中有一个数字(可正可负),每条边上或者是“+”号,或者是“*”号.边从1到N编号,首先选择一 ...

  4. poj1179 环形+区间dp

    因为要用到模,所以左起点设置为0比较好 #include<iostream> #include<cstdio> #include<cstring> #define ...

  5. Vijos 1565 多边形 【区间DP】

    描述 zgx给了你一个n边的多边形,这个多边形每个顶点赋予一个值,每条边都被标上运算符号+或*,对于这个多边形有一个游戏,游戏的步骤如下:(1)第一步,删掉一条边:(2)接下来n-1步,每步对剩下的边 ...

  6. 多边形游戏——区间dp

    题目描述 多边形(Polygon)游戏是单人玩的游戏,开始的时候给定一个由N个顶点构成的多边形(图1所示的例子中,N=4),每个顶点被赋予一个整数值,而每条边则被赋予一个符号:+(加法运算)或者*(乘 ...

  7. poj1179 区间dp(记忆化搜索写法)有巨坑!

    http://poj.org/problem?id=1179 Description Polygon is a game for one player that starts on a polygon ...

  8. kuangbin 区间dp

    A - Cake 题目大意:给你一个n个顶点(n<=100)的多边形和每两个点连边的消耗,让你求把这个多边形全部切成三角形所需要的最小消耗,如果这个多边形为凹多边形则输出无解. 思路:先求一个凸 ...

  9. BZOJ 1719--[Usaco2006 Jan] Roping the Field 麦田巨画(几何&区间dp)

    1719: [Usaco2006 Jan] Roping the Field 麦田巨画 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 82  Solved ...

随机推荐

  1. Multicast注册中心

    1 2 3 4 提供方启动时广播自己的地址. 消费方启动时广播订阅请求. 提供方收到订阅请求时,单播自己的地址给订阅者,如果设置了unicast=false,则广播给订阅者. 消费方收到提供方地址时, ...

  2. 【虚拟机】WIN8.1系统虚拟机完全彻底删除

    一.首先删除注册表 用管理员身份打开CMD,输入F:\>VMware-workstation-full-12.5.5-5234757.exe/clean,根据自己的虚拟机安装文件的路径进行改变( ...

  3. Nginx 经验小结

    chmod 777 永远不要 使用 777,有时候可以懒惰的解决权限问题, 但是它同样也表示你没有线索去解决权限问题,你只是在碰运气. 你应该检查整个路径的权限,并思考发生了什么事情. 把 root ...

  4. 语法之知识点的改进(Func/Action)

    上一章我们讲到关于面向对象思想上C#和JAVA之差别.笔者分别从面向对象的三大特性入手.而本章主要讲一些C#改进的知识点.在.NET Framework 2.0之后出现很多新的知识点.这些知识点更是让 ...

  5. angularcli填坑系列(持续更新...)

    1.在xx.ts中引入css样式无效 @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls ...

  6. PHP加Nginx实现动态裁剪图片方案

    许久以前写过一篇也是关于高性能PHP图片动态裁剪方案的文章,那文章使用的是nginx Cache和rewrite实现的,当然再加上CDN,那个方案存在一个问题就是图片并没有实际生成,而是以二进制的形式 ...

  7. python之学习

    ------------------------------------------  基本语句解析 import:导入某些模块或者文件 import random: 导入生成随机数模块 import ...

  8. SpringBoot学习笔记(13):日志框架

    SpringBoot学习笔记(13):日志框架——SL4J 快速开始 说明 SpringBoot底层选用SLF4J和LogBack日志框架. SLF4J的使用 SpringBoot的底层依赖关系 1. ...

  9. com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '88888888' for key 'PRIMARY'

    严重: Servlet.service() for servlet jsp threw exceptioncom.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityC ...

  10. 《CSS权威指南(第三版)》---第七章 基本视觉格式化

    主要知识记录: 1.给一个元素指定内容区宽度,如果设置了内边距,边框和外边距,这些因素都会影响CSS的width属性. 2.在水平格式化的7个属性中,width,margin-left,margin- ...