区间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——try catch throw

    本例检测输入变量的值.如果值是错误的,会抛出一个异常(错误).catch 会捕捉到这个错误,并显示一段自定义的错误消息: <script> function myFunction() { ...

  2. 使用码云gitee.com托管代码

    1.新建项目 可以看到团队资源管理器是这样的,已经在本地有存储库,所有更改可以保存本地 2.在码云上新建项目 项目名称必填,其它项根据情况填写 3.复制项目地址关联到本地存储库 填写码云的项目地址,发 ...

  3. POJ_3279_(dfs)(状态)

    ---恢复内容开始--- Fliptile Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 8219   Accepted:  ...

  4. Operation Queues 面向对象的封装

    Operation Queues An operation queue is the Cocoa equivalent of a concurrent dispatch queue and is im ...

  5. vue04 组件化开发 Vue自动化工具

    5. 组件化开发 5.1 组件[component] 组件(Component)是自定义封装的功能.在前端开发过程中,经常出现多个网页的功能是重复的,而且很多不同的网站之间,也存在同样的功能. 而在网 ...

  6. C# 后台POST提交方式

    1.第一种方式:用最新框架,但是针对IIS服务器的操作系统有关系,非R2的收不到数据: using (var reqConts = new MultipartFormDataContent()) { ...

  7. G. I love Codeforces

    G. I love Codeforces 题目大意:给你n个字符串,以及m个喜欢关系,如果u喜欢v,这时候u会把它的用户名改为 I_love_ 加上v当时的用户名 Examples input 5an ...

  8. 28.function_score自定义相关度分数算法

    我们可以做到自定义一个function_score函数,自己将某个field的值,跟es内置算出来的分数进行运算,然后由自己指定的field来进行分数的增强     一.准备数据 给所有的帖子数据增加 ...

  9. Linux - redis主从同步

    目录 Linux - redis主从同步 环境准备 配置主从同步 测试写入数据,主库写入数据,检查从库数据 手动进行主从复制故障切换 Linux - redis主从同步 原理: 从服务器向主服务器发送 ...

  10. noip模拟赛 a

    分析:f(n)就是问有多少对a*b*c = n,如果是Σf(i),那就是问有多少对a*b*c <= n. 这道题和之前做过的一道数三角形的题差不多:传送门,先假设一下a <= b < ...