hdu 4628 状态压缩dp
2015-12-11 00:39
441 查看
字符串最多只有16位直接暴力。
//hdu 4628 状态压缩dp
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<cstdlib>
#include<istream>
#include<vector>
#include<math.h>
#include<algorithm>
#include<string.h>
#define mod 10000009
#define long long ll
using namespace std;
char s[25];
int dp[1 << 16 + 1],len,all;
int init(int a)
{
int i;
vector<int> v;
v.clear();
for (i = 0;i <=len;i++)
{
if (a&(1 << i))
v.push_back(i);
}
int t = v.size();
t--;
for (i = 0;i <= t / 2;i++)
if (s[v[i]] != s[v[t-i]])
return v.size();
return 1;
}
int main()
{
//freopen("d:\\in.txt", "r", stdin);
int T;
scanf("%d", &T);
getchar(); //注意要先用getchar()读取空格,不然不知道自己死在哪里
while (T--)
{
gets(s);
len = strlen(s);
all=1<<len;
all--;
int s0, s1, s2;
for (s0 = 1;s0 < (1 << len);s0++)
{
dp[s0]=init(s0);
for (s1 = s0;;s1 = (s1 - 1)&s0)
{
//hdu 4628 状态压缩dp
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<cstdlib>
#include<istream>
#include<vector>
#include<math.h>
#include<algorithm>
#include<string.h>
#define mod 10000009
#define long long ll
using namespace std;
char s[25];
int dp[1 << 16 + 1],len,all;
int init(int a)
{
int i;
vector<int> v;
v.clear();
for (i = 0;i <=len;i++)
{
if (a&(1 << i))
v.push_back(i);
}
int t = v.size();
t--;
for (i = 0;i <= t / 2;i++)
if (s[v[i]] != s[v[t-i]])
return v.size();
return 1;
}
int main()
{
//freopen("d:\\in.txt", "r", stdin);
int T;
scanf("%d", &T);
getchar(); //注意要先用getchar()读取空格,不然不知道自己死在哪里
while (T--)
{
gets(s);
len = strlen(s);
all=1<<len;
all--;
int s0, s1, s2;
for (s0 = 1;s0 < (1 << len);s0++)
{
dp[s0]=init(s0);
for (s1 = s0;;s1 = (s1 - 1)&s0)
{
int u=s0^s1;if(u>s1) break;
dp[s0] = min(dp[s0], dp[s1] + dp[s0^s1]); } } printf("%d\n", dp[all]); } return 0; }
相关文章推荐
- 第3章 数据缓冲区高速缓冲
- AC自动机-HDU2896-模板题
- mysql_query设置字符集为utf8,解决中文乱码的问题
- Java学习----对象的状态和行为
- spring定时器在集群环境下的执行
- 通过注册表修改键盘按键的映射
- AC自动机-HDU2222-模板题
- oracle存储过程的学习
- unity,set ugui rectTransform anchor by script
- canfestival中对象字典编辑器的打开
- 分布式版本控制系统----GIT的使用(一)
- Maridb编译安装及存储引擎、事务
- 传统企业信息化的成功案例的一些感想(原创)
- DBA推荐使用 HeidiSQL,开源免费,不用担心有病毒
- MySql
- LeetCode 235:Lowest Common Ancestor of a Binary Search Tree
- Android Studio系列教程四--Gradle基础
- 使用AndroidStudio进行单元测试
- 深入浅出的javascript的正则表达式学习教程
- 关于Android的.so文件你所需要知道的