区间dp

dp[i][j]存i->j区间的所有取值

然后枚举分割点,枚举两个存的值,分别运算存储。

看见这种不确定分割顺序,两个区间合并的情况,就要用区间dp。

#include<bits/stdc++.h>
using namespace std;
const int N = ;
int n, kase;
int vis[N * ];
char s[N];
vector<int> dp[N][N];
int main()
{
while(scanf("%s", s + ))
{
if(s[] == '') break;
n = strlen(s + );
for(int i = ; i <= n; ++i)
for(int j = i; j <= n; ++j)
dp[i][j].clear();
for(int i = ; i <= n; ++i)
{
if(s[i] == 'I') dp[i][i].push_back();
if(s[i] == 'V') dp[i][i].push_back();
if(s[i] == 'X') dp[i][i].push_back();
if(s[i] == 'L') dp[i][i].push_back();
if(s[i] == 'C') dp[i][i].push_back();
}
for(int len = ; len <= n; ++len)
for(int i = ; i <= n - len + ; ++i)
{
for(int j = i; j < i + len; ++j)
for(int x = ; x < dp[i][j].size(); ++x)
for(int y = ; y < dp[j + ][i + len - ].size(); ++y)
if(dp[i][j][x] < dp[j + ][i + len - ][y] && !vis[dp[j + ][i + len - ][y] - dp[i][j][x]])
{
dp[i][i + len - ].push_back(dp[j + ][i + len - ][y] - dp[i][j][x]);
vis[dp[j + ][i + len - ][y] - dp[i][j][x]] = ;
}
else if(dp[i][j][x] >= dp[j + ][i + len - ][y] && !vis[dp[j + ][i + len - ][y] + dp[i][j][x]])
{
vis[dp[j + ][i + len - ][y] + dp[i][j][x]] = ;
dp[i][i + len - ].push_back(dp[j + ][i + len - ][y] + dp[i][j][x]);
}
for(int x = ; x < dp[i][i + len - ].size(); ++x)
vis[dp[i][i + len - ][x]] = ;
}
sort(dp[][n].begin(), dp[][n].end());
printf("Case %d:", ++kase);
for(int i = ; i < dp[][n].size(); ++i)
printf(" %d", dp[][n][i]);
puts("");
}
return ;
}

最新文章

  1. java通过地址获取主机名
  2. QTreeView处理大量数据(使用1000万条数据,每次都只是部分刷新)
  3. Android 去掉Activity的跳转动画
  4. CentOS7 离线安装gcc/pcre-devel/openssl-devel/zlib-devel
  5. 20160224.CCPP体系详解(0034天)
  6. Fragment与Fragment相互切换之间的生命周期方法
  7. 51nod--1174 区间中最大的数 (RMQ)
  8. 学习Git笔记
  9. sql server auto increment - trace flag 272
  10. C++之语言概述
  11. 输入法环境变量XMODIFIERS/GTK_IM_MODULE
  12. 混合欧拉回路的判断(Dinic)
  13. ASP.NET 4(和ASP.NET MVC 2)中输出HTML编码的新语法&lt;%:%&gt;
  14. 课时54.audio标签(掌握)
  15. centos 7.2 安装apache,mysql,php5.6
  16. ansible command模块将返回值写入变量
  17. java web 解决Form表单乱码问题
  18. 编程之美——求1~N的整数中1的个数
  19. jQuery.1.9 live 代替事件 on 新增内容无法触发事件
  20. 【Machine Learning 学习笔记】OSX Octave 输出图像问题

热门文章

  1. [Windows Server 2003] 安装PHP+MySQL方法
  2. HDU_1848_博弈,sg函数
  3. Python操作数据库及hashlib模块
  4. shouldComponentUpdate不能直接比较object
  5. js的三种对象
  6. 学不好Linux?我们分析看看正确的学习方法是什么-马哥教育
  7. 【webpack结合React开发环境配置】React开发环境配置之Webpack结合Babel8.x版本安装的正确姿势(Webpack最新版4.x结合Babel8.x环境配置步骤)
  8. js中数组,字符串,对象常用方法总结
  9. [Luogu] P3907 圈的异或
  10. 洛谷 2042 BZOJ 1500 NOI 2005 维护数列