LA6878
区间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的更多相关文章
随机推荐
- 【译】x86程序员手册02 - 基本的程序模式
Chapter 2 -- Basic Programming Model: 基本的程序模式 Introduces the models of memory organization. Defines ...
- async await 同步方法调用异步方法死锁
同步方法调用异步方法.GetAwaiter().GetResult()计算函数超时,异步方法所有的回调操作都会期望返回到主线程. 所以会导致各种线程死锁.异步方法中使用ConfigureAwait(f ...
- Postfix 故障记录
1.postfix 目录/var/mail/USER文件大小限制报错 解决方式: 编辑 /etc/postfix/main.cf 文件添加以下内容 mailbox_size_limit = 51200 ...
- (转)Hibernate的优化方案
http://blog.csdn.net/yerenyuan_pku/article/details/70768603 HQL优化 使用参数绑定 使用绑定参数的原因是让数据库一次解析SQL,对后续的 ...
- Python 之pytesseract模块读取知乎验证码案例
import pytesseract from PIL import Image import requests import time # 获取只会验证码图片并保存为本地 def get_data_ ...
- Cesium学习笔记(九):导入3D模型(obj转gltf)
在用cesium的过程中难免需要导入别人做好的3D模型,这时候就需要将这些模型转成gltf格式了 当然,官方也给了我们一个网页版的转换器,但是毕竟是网页版的,效率极其低下,文件还不能太大,所以我们就需 ...
- TP调用JS
echo "<script>alert('删除成功');window.location.href='?c=Banner&a=index' </script>& ...
- IE浏览器new Date()带参返回NaN解决方法
var start = '2016-01-01 12:12:12'; var date = new Date(start); 得到的时间为NaN: 解决方法: 1.自定义方法 自定义一个NewDate ...
- TensorFlow 学习笔记(2)----placeholder的使用
此系列将会每日持续更新,欢迎关注 在TensorFlow中输入值的方式是通过placeholder来实现 例如:做两个数的乘法时,是先准备好两个place, 再将输出值定义成两数的乘法 最后利用ses ...
- dubbo服务telnet命令的使用
转自:https://www.cnblogs.com/feiqihang/p/4387330.html dubbo服务发布之后,我们可以利用telnet命令进行调试.管理.Dubbo2.0.5以上版本 ...