区间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 ;
}

LA6878的更多相关文章

随机推荐

  1. JS——offset

    1.offsetWidth.offsetHeight返回盒子宽度和高度,包括padding与border,不包括margin 2.offsetLeft.offsetTop返回盒子距离定位盒子的x轴方向 ...

  2. [Windows Server 2008] Serv-U安装方法

    ★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com ★ 护卫神·V课堂 是护卫神旗下专业提供服务器教学视频的网站,每周更新视频. ★ 本节我们将带领大家:Serv- ...

  3. 【译】x86程序员手册11- 4.1系统寄存器

    4.1 Systems Registers 系统寄存器 The registers designed for use by systems programmers fall into these cl ...

  4. JS DOM节点(当前标签和同级、父级、子级..之间的关系)

    1. 通过顶层document节点获取    1) document.getElementById(elementId) //根据id获得    2) document.getElementsByNa ...

  5. 【转】resultMap详解(包含多表查询)

    简介: MyBatis的每一个查询映射的返回类型都是ResultMap,只是当我们提供的返回类型属性是resultType的时候,MyBatis对自动的给我们把对应的值赋给resultType所指定对 ...

  6. How To: Multipath Linux x86-64 Release 6.4

    [root@node01 ~]# lsb_release -a LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0 ...

  7. The C++ Programming Language - Bjarne Stroustrup

    Preface Part 1: Introduction 1.1 The Structure of This Book 1.1.1 Introduction 1.1.2 Basic Facilitie ...

  8. Django的基础教程

    学Django需要什么基础? 1. Django是 python 语言写的一个Web框架包,所以你得知道一些 Python 基础知识. 2. 其次你最好有一些做网站的经验,懂一些网页 HTML, CS ...

  9. 【模板】Manacher 回文串

    推荐两个讲得很好的博客: http://blog.sina.com.cn/s/blog_70811e1a01014esn.html https://segmentfault.com/a/1190000 ...

  10. Huawei-R&S-网络工程师实验笔记20190525-设备登录、VRP基本配置、文件系统

    >Huawei-R&S-网络工程师实验笔记20190525-设备登录.VRP基本配置.文件系统(环回接口.telnet远程.AAA登录.命令行.时钟.banner.文件目录) >& ...