//Accepted    244 KB    0 ms
 //区间dp
 //石子合并模型
 #include <cstdio>
 #include <cstring>
 #include <iostream>
 using namespace std;
 ;
 ;
 ;
 int dp_min[imax_n][imax_n];
 int dp_max[imax_n][imax_n];
 int a[imax_n];
 ];
 int n;
 int max(int a,int b)
 {
     return a>b?a:b;
 }
 int min(int a,int b)
 {
     return a<b?a:b;
 }
 int cal(int a,int b,char s[])
 {
     ]=='t') return a+b;
     return a*b;
 }
 void Dp()
 {
     ;i<*n;i++)
     dp_max[i][i]=dp_min[i][i]=a[i];
     ;l<=n;l++)
     {
         ;i<*n;i++)
         {
             ;
             *n) break;
             dp_max[i][j]=Ninf;
             dp_min[i][j]=Pinf;
             ;k++)
             {
                 dp_max[i][j]=max(dp_max[i][j],cal(dp_max[i][k],dp_max[k+][j],s[k+]));
                 dp_max[i][j]=max(dp_max[i][j],cal(dp_min[i][k],dp_min[k+][j],s[k+]));
                 dp_min[i][j]=min(dp_min[i][j],cal(dp_min[i][k],dp_min[k+][j],s[k+]));
                 dp_min[i][j]=min(dp_min[i][j],cal(dp_max[i][k],dp_min[k+][j],s[k+]));
                 dp_min[i][j]=min(dp_min[i][j],cal(dp_min[i][k],dp_max[k+][j],s[k+]));
             }
         }
     }
     int ans=Ninf;
     ;i<=n;i++)
     ans=max(ans,dp_max[i][i+n-]);
     printf("%d\n",ans);
     ;
     ;i<=n;i++)
     {
         ]==ans)
         {
             )
             {
                 printf("%d",i);
                 flag=;
             }
             else
             {
                 printf(" %d",i);
             }
         }
     }
     printf("\n");
 }
 int main()
 {
     while (scanf("%d",&n)!=EOF)
     {
         ;i<=n;i++)
         scanf("%s%d",s[i],&a[i]);
         ;i<n;i++)
         {
             a[n+i]=a[i];
             strcpy(s[n+i],s[i]);
         }
         Dp();
     }
     ;
 }

poj1179的更多相关文章

  1. 【POJ1179】Polygon 区间DP

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

  2. poj1179 环形+区间dp

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

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

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

  4. POJ1179 Polygon

    题目:http://poj.org/problem?id=1179 石子合并的升级版.有负值.但运算符只有 + 和 * . 考虑负值对原做法正确性的影响:之所以仅记录最大值可能不对,是因为有可能负数 ...

  5. poj1179 Polygon【区间DP】

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

  6. poj1179多边形——区间DP

    题目:http://poj.org/problem?id=1179 区间DP,值得注意的是有负值,而且有乘法,因此可能会影响最大值: 注意memset中写-1仅仅是-1,-2才是一个很小的负数: 最后 ...

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

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

  8. POJ1179 Polygon 区间DP

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

  9. DP总结 ——QPH

    常见优化 单调队列 形式 dp[i]=min{f(k)} dp[i]=max{f(k)} 要求 f(k)是关于k的函数 k的范围和i有关 转移方法 维护一个单调递增(减)的队列,可以在两头弹出元素,一 ...

随机推荐

  1. 利用Github和Hexo搭建独立的个人博客--基础篇

    利用Github和Hexo搭建独立的个人博客--基础篇 摘要:本文主要参考了使用hexo和Github上创建自己的博客.如何搭建一个独立博客--简明Github Pages与Hexo教程和使用GitH ...

  2. 修复 SQLite 数据库文件

    目 录 第1章 说明    1 1 下载SQLite Tools    1 2 运行    2 第1章 说明 笔者编写的一个程序,无法往 SQLite 数据库文件里写数据.使用SQLiteSpy打开该 ...

  3. C# 给软件加注册码功能

    为自己写的程序加一个注册功能吧.生成的机器号是根据CPU和硬盘号来的,根据自己的需求改成是否是随机生成. 代码直接粘贴到新建类覆盖原代码就能直接用了. using System; using Syst ...

  4. PHP 启动 cURL模块以及启动失败的解决方案

    配置方法: php_curl.dll libeay32.dll ssleay32.dll php5ts.dll 复制到 %windir%/system32 以及php 目录的ext目录 下 并且找到p ...

  5. JAVA_安装JDK和Eclipse

    大二开始前,找的是学长帮忙直接安装的,这个寒假抽空体验重装系统,同时,体验安装JDK和Eclipse.O(∩_∩)O 1.jdk 1)官方网址(下载JDK)   http://www.oracle.c ...

  6. hdu 1695 GCD(莫比乌斯反演)

    GCD Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  7. 2016年31款轻量高效的开源JavaScript插件和库

    目前有很多网站设计师和开发者喜欢使用由JavaScript开发的插件和库,但同时面临一个苦恼的问题:它们中的大多数实在是太累赘而且常常降低网站的性能.其实,其中也有不少轻量级的插件和库,它们不仅轻巧有 ...

  8. UI-简答的BOL的取值塞值

    不知道从什么时候开始,习惯用BOL MODEL来做一些东西的了.某个项目开始正式接触标准主数据的时候,开始了用MAINTAIN BAPI和BUPA的一些FM.然后在一段时间内是以此类的FM来开发的.B ...

  9. if条件语句

    第四天 XMind 思维导图复习之前知识 数据类型-变量常量-运算符(表达式)-语句(顺序.分支.循环)-数组-函数 1.if语句格式 if(表达式) { 语句 } 注意: 1.如果,表达式成立,只执 ...

  10. fill_parent和wrap_content的区别

    在Android布局文件中定义视图垂直或水平大小: android:layout_width和android_layout_height的属性有fill_parent.wrap_content和mat ...