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

石子合并的升级版。有负值。但运算符只有 + 和 * 。

考虑负值对原做法正确性的影响:之所以仅记录最大值可能不对,是因为有可能负数 * 负数得到很大结果。

发现只有这种情况影响。而且这种情况中负数越小越优。所以记录一下最小值,每次参与更新就行了。

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
//const int INF=16843009,FIN=-16843010;
int n,d[][][],ans=-;//别忘了ans的初值
char ch[];
int main()
{
scanf("%d",&n);//初值?
memset(d[],-,sizeof d[]);
memset(d[],,sizeof d[]);
for(int i=;i<=n;i++)
{
scanf(" %c%d",&ch[i],&d[][i][i]);
d[][i][i]=d[][i][i];
d[][i+n][i+n]=d[][i][i];d[][i+n][i+n]=d[][i][i];
ch[i+n]=ch[i];
// printf("(%d)(%c)",d[0][i][i],ch[i]);
}
for(int i=;i<=n;i++)
for(int l=;l<=*n-i;l++)
{
int r=l+i-;
for(int k=l;k<r;k++)//l~k k+1~r
{
if(ch[k+]=='t')
{
// printf("(%d+%d) ",d[0][k][k],d[0][k+1][k+1]);
d[][l][r]=max(d[][l][r],d[][l][k]+d[][k+][r]);
d[][l][r]=min(d[][l][r],d[][l][k]+d[][k+][r]);
}
if(ch[k+]=='x')
{
// printf("(%d*%d) ",d[0][k][k],d[0][k+1][k+1]);
d[][l][r]=max(d[][l][r],max(d[][l][k]*d[][k+][r],d[][l][k]*d[][k+][r]));
d[][l][r]=min(min(d[][l][r],d[][l][k]*d[][k+][r])
,min(d[][l][k]*d[][k+][r],d[][l][k]*d[][k+][r]));
}
}
}
for(int i=;i<=n;i++)
ans=max(ans,d[][i][i+n-]);
printf("%d\n",ans);
for(int i=;i<=n;i++)
if(d[][i][i+n-]==ans)
printf("%d ",i);
return ;
}

POJ1179 Polygon的更多相关文章

  1. POJ-1179 Polygon (动态规划)

    Polygon Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 5293 Accepted: 2238 Description P ...

  2. poj1179 Polygon【区间DP】

    Polygon Time Limit: 1000MS   Memory Limit: 10000K Total Submissions:6633   Accepted: 2834 Descriptio ...

  3. POJ1179 Polygon 区间DP

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

  4. 常规DP专题练习

    POJ2279 Mr. Young's Picture Permutations 题意 Language:Default Mr. Young's Picture Permutations Time L ...

  5. 【POJ1179】Polygon 区间DP

    这道题是典型的环形石子归并模型,破环成链后时间复杂度为\(O(n^3)\) 不过,因为题目中所给的数字可能是负数,仅仅记录区间内合并之后的最大值并不满足动态规划的最优子结构性质.因此,还需要额外记录下 ...

  6. [LeetCode] Convex Polygon 凸多边形

    Given a list of points that form a polygon when joined sequentially, find if this polygon is convex ...

  7. 结合谷歌地图多边形(polygon)与Sql Server 2008的空间数据类型计算某个点是否在多边形内的注意事项

    首先在利用 GEOGRAPHY::STPolyFromText(@GeoStr, 4326) 这样的函数把字符串转换为Geography类型时,字符串里经纬度的顺序是 “经度[空格]纬度”,即“lon ...

  8. [svg 翻译教程]Polyline(折线)polygon(多边形)

    原文: http://tutorials.jenkov.com/svg/polygon-element.html Polyline 虽然说这个 元素我没用过,但是还是蛮强大的,也翻译下 示例 < ...

  9. [OpenGL][SharpGL]用Polygon Offset解决z-fighting和stitching问题

    [OpenGL][SharpGL]用Polygon Offset解决z-fighting和stitching问题 本文参考了(http://www.zeuscmd.com/tutorials/open ...

随机推荐

  1. UVALive 6320

    .............先让我哭一会....... 因为样例三.... 没敢敲...然后确实是样例错了...然后...上次比赛刚做过的一道类似的题...URAL 1941...大水题啊......悔 ...

  2. [.NET MVC4 入门系列01]Helloworld MVC 4 第一个MVC4程序

    [.NET MVC4 入门系列01]Helloworld MVC 4 第一个MVC4程序   一.练习项目: http://www.asp.net/mvc/tutorials/mvc-4/gettin ...

  3. L1-027 出租

    下面是新浪微博上曾经很火的一张图: 一时间网上一片求救声,急问这个怎么破.其实这段代码很简单,index数组就是arr数组的下标,index[0]=2 对应 arr[2]=1,index[1]=0 对 ...

  4. 给tabBarItem加点击效果动画

    获取到tabBarItem,添加喜欢的动画 .h文件 @interface JGTabBarController () //记录上一次点击tabbar @property (nonatomic, as ...

  5. kbmMW 5.06.20试用笔记

    1.kbmMWConfiguration自动备份配置文件的问题还没有修正. 下面是以前写过的内容,再一次在新闻组中提出这个问题: kbmMW提供一个强大的配置信息管理对象,前期译过这个对象的介绍,在使 ...

  6. iOS plist文件的读写

    原帖:http://blog.csdn.net/totogo2010/article/details/7634185 在做iOS开发时,经常用到到plist文件,  那plist文件是什么呢? 它全名 ...

  7. Oracle text组件安装

    1.目标:在数据库中,安装Oracle Text组件: 970473.1 MOS文档ID     2.组件相关视图:查询验证 #查询DB中的组件: #视图:USER_REGISTRY (注册) COM ...

  8. m函数与m文件的命名

    问题 创建函数test_image,按照定义方式进行调用,一直出现下图所示的错误, 调试的过程中一直提示输入参数太多,可是test_image这个函数的输入个数和调用这个函数的输入输出数目是一致的,然 ...

  9. TypeScript 编译器源码研究(一)

    TypeScript (以下简称 TS)是一个非常强大的语言,其编译器源码超过 10000 行. 源码在 Github 可以找到:https://github.com/Microsoft/TypeSc ...

  10. Java项目体验

    1.       JAVA开发环境安装和配置 a)         下载JDK(Java  Development  Kit) b)         安装JDK. JRE(Java  Runtime  ...