poj1179
//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的更多相关文章
- 【POJ1179】Polygon 区间DP
这道题是典型的环形石子归并模型,破环成链后时间复杂度为\(O(n^3)\) 不过,因为题目中所给的数字可能是负数,仅仅记录区间内合并之后的最大值并不满足动态规划的最优子结构性质.因此,还需要额外记录下 ...
- poj1179 环形+区间dp
因为要用到模,所以左起点设置为0比较好 #include<iostream> #include<cstdio> #include<cstring> #define ...
- POJ-1179 Polygon (动态规划)
Polygon Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 5293 Accepted: 2238 Description P ...
- POJ1179 Polygon
题目:http://poj.org/problem?id=1179 石子合并的升级版.有负值.但运算符只有 + 和 * . 考虑负值对原做法正确性的影响:之所以仅记录最大值可能不对,是因为有可能负数 ...
- poj1179 Polygon【区间DP】
Polygon Time Limit: 1000MS Memory Limit: 10000K Total Submissions:6633 Accepted: 2834 Descriptio ...
- poj1179多边形——区间DP
题目:http://poj.org/problem?id=1179 区间DP,值得注意的是有负值,而且有乘法,因此可能会影响最大值: 注意memset中写-1仅仅是-1,-2才是一个很小的负数: 最后 ...
- poj1179 区间dp(记忆化搜索写法)有巨坑!
http://poj.org/problem?id=1179 Description Polygon is a game for one player that starts on a polygon ...
- POJ1179 Polygon 区间DP
题目大意: 多边形游戏,有N个顶点的多边形,3 <= N <= 50 ,多边形有N条边,每个顶点中有一个数字(可正可负),每条边上或者是“+”号,或者是“*”号.边从1到N编号,首先选择一 ...
- DP总结 ——QPH
常见优化 单调队列 形式 dp[i]=min{f(k)} dp[i]=max{f(k)} 要求 f(k)是关于k的函数 k的范围和i有关 转移方法 维护一个单调递增(减)的队列,可以在两头弹出元素,一 ...
随机推荐
- Rest接口中正则表达式
匹配所有字符: @Path("/server/{urlParam: .*}")
- Python中pip版本升级error:You are using pip version 7.1.2, however version 8.1.1 is available.
使用pip install安装命令时,会报错:You are using pip version 7.1.2, however version 8.1.1 is available. 尝试了推荐解决办 ...
- C/C++ 如何劫持别人家的命令||函数||程序(只能对于window而言)
要实现下面程序,首先我们需要三个文件 detours.h ,detours.lib ,detver.h(可以去网上下载) 1. 首先让我们看看,一个最简单的C程序,如何劫持system函数. #inc ...
- Java之线程———GUI线程(包含打字游戏和计时器俩个GUI实列)
当java程序包含图形用户界面(GUI)时,Java虚拟机在运行应用程序时会自动启动更多的线程,其中有两个重要的线程:AWT-EventQuecue 和 AWT-Windows. AWT-EventQ ...
- c++表达式的一些小小的注意事项
3+12>>1 = 7; 12>>1+3 =0; 3+(12>>1)=9;
- 张艾迪(创始人):发明整个世界+224C个国家
Eidyzhang:发明整个世界+224C个国家 Eidyzhang: Genius.Founder.CEO.23 I 世界级最高级创始人.世界最高级FounderCEO 出生在亚洲中国.Eidyzh ...
- 自动发牌(C#版)
利用数组实现发牌过程 一副牌去掉大小王,还剩52张.一共东.南.西.北四家,每家随机发13张牌. 提示: 东.南.西.北四家用一维数组表示 每家的牌采用一维数组表示(13张) 花色:enum Sui ...
- 静态库 && 动态库
http://weihe6666.iteye.com/blog/1100065 http://www.cnblogs.com/skynet/p/3372855.html 静态库: 在链接阶段,将汇编生 ...
- 20145236 《Java程序设计》第九周学习总结
20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ...
- Python eclipse开发环境搭建
http://jingyan.baidu.com/article/cd4c2979101f02756f6e6064.html http://jingyan.baidu.com/article/1876 ...