题目: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. EBS 中iSupplier模块中的MAPPING_ID

    在EBS的供应商模块中,有一个非常有意思的表 POS_SUPPLIER_MAPPINGS, 这个表中建立了supplier_reg_id,vendor_id,party_id之间的映射关系. 这个表中 ...

  2. 【转】jieba.NET与Lucene.Net的集成

    首先声明:我对Lucene.Net并不熟悉,但搜索确实是分词的一个重要应用,所以这里还是尝试将两者集成起来,也许对你有一参考. 看到了两个中文分词与Lucene.Net的集成项目:Lucene.Net ...

  3. [Vue warn]: Invalid prop: custom validator check failed for prop "xxx".问题

    在用vue+ui框架(iview.elementui等)做项目,会遇到这种问题 这样的,点那都报错,千辛万苦的付出,却找不到问题在哪 其实很简单,报错都显示出那个组件的问题了  ‘<Form&g ...

  4. vue2.0对不同数据类型的显示

  5. chrome 扩展插件提示

    --force-fieldtrials=ExtensionDeveloperModeWarning/None/ ogfahjpoemnbbnlignjbfinfnahmfdlk ahjaciijnoi ...

  6. CCF 2015-03-4 网络延时

    题目:http://115.28.138.223/view.page?gpid=T24 题意就是让求树上的任意两个节点间的距离的最大值.就是树的直径. 首先树的直径模板转载自http://www.07 ...

  7. linux kernel swap daemon

    The name swap daemon is a bit of a misnomer as the daemon does more than just swap modified pages ou ...

  8. C语言中的volatile——让我保持原样

    volatile译为:易变的.这不是和题目的让我保持原样矛盾了吗?其实不然,在变量前加上该关键字修饰,确实是告诉编译器,这个变量是一个容易改变的变量,不要对它进行优化,每次都要到变量的地址中去读取变量 ...

  9. Django(三)url和返回

    location 最后一个文件夹名就是project名,我用了Django_Plan. Application 是自动加入的APP名字,我用了Plan 编辑Django_Plan\Django_Pla ...

  10. “开始菜单”按钮今年8月将重回Windows 8

    本月早些时候微软明确表示,“开始菜单”将重新回归Windows 8操作系统.尽管微软当时并没有公布具体的时间表,但据熟悉微软内部运作的消息灵通人士透露称,“开始菜单”极有可能将出现在预计于今年8月发布 ...