hdu 4628 Pieces 状态压缩dp
Pieces
Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) Total Submission(s): 1418 Accepted Submission(s): 724
for(i=1;i<k;i++)//枚举每一种情况。
{
for(j=i;j>=1;j--)//对于每一种情况,首选就是它自身了。
{
if(flag[j])//判断是否为回文情况
{
if(dp[i-j]+1<dp[i])
dp[i]=dp[i-j]+1;//更新
}
j=i&j;//这句很重要
}
}
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
using namespace std; char a[];
int dp[<<];
bool flag[<<];
void solve(int n)
{
int i,j,k,ans,len;
int f[];
k=<<n;
for(i=;i<k;i++)//预处理
{
ans=;
for(j=;j<=;j++)
if( (i&(<<j))>)
f[++ans]=j;
len=ans/; for(j=;j<=len;j++)
if( a[f[j]]!=a[f[ans-j+]]) break;
if(j>len) flag[i]=true;
else flag[i]=false;
}
for(i=;i<k;i++)
dp[i]=;
dp[]=;
for(i=;i<k;i++)
{
for(j=i;j>=;j--)
{
if(flag[j])
{
if(dp[i-j]+<dp[i])
dp[i]=dp[i-j]+;
}
j=i&j;
}
}
printf("%d\n",dp[k-]);
}
int main()
{
int T,n;
while(scanf("%d",&T)>)
{
while(T--)
{
scanf("%s",a);
n=strlen(a);
solve(n);
}
}
return ;
}
hdu 4628 Pieces 状态压缩dp的更多相关文章
- hdu 5094 Maze 状态压缩dp+广搜
作者:jostree 转载请注明出处 http://www.cnblogs.com/jostree/p/4092176.html 题目链接:hdu 5094 Maze 状态压缩dp+广搜 使用广度优先 ...
- HDU 3001(状态压缩dp)
状态压缩dp的第一题! 题意:Mr ACMer想要进行一次旅行,他决定访问n座城市.Mr ACMer 可以从任意城市出发,必须访问所有的城市至少一次,并且任何一个城市访问的次数不能超过2次.n座城市间 ...
- hdu 4856 Tunnels 状态压缩dp
Tunnels Time Limit: 3000/1500 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Problem ...
- HDU 3001【状态压缩DP】
题意: 给n个点m条无向边. 要求每个点最多走两次,要访问所有的点给出要求路线中边的权值总和最小. 思路: 三进制状态压缩DP,0代表走了0次,1,2类推. 第一次弄三进制状态压缩DP,感觉重点是对数 ...
- hdu 4628 Pieces 状压dp
题目链接 枚举所有状态, 1表示这个字符还在原来的串中, 0表示已经取出来了. 代码中j = (j+1)|i的用处是枚举所有包含i状态的状态. #include <iostream> #i ...
- hdu 5045 Contest(状态压缩DP)
题解:我们使用一个二位数组dp[i][j]记录进行到第i个任务时,人组合为j时的最大和(这里的j我们用二进制的每位相应一个人). 详细见代码: #include <iostream> #i ...
- hdu 3091 Necklace 状态压缩dp *******
Necklace Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 327680/327680 K (Java/Others)Total ...
- HDU 2167 Pebbles 状态压缩dp
Pebbles Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Sub ...
- HDU 1074 (状态压缩DP)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1074 题目大意:有N个作业(N<=15),每个作业需耗时,有一个截止期限.超期多少天就要扣多少 ...
随机推荐
- Ajax请求的一个重要属性contentType
比如 contentType : 'application/json;charset=UTF-8', 或者 contentType : 'text/html;charset=UTF-8', 如果不加此 ...
- linux性能评估与分析工具---CPU篇
一. uptime root@calm:~# uptime :: up days, :, user, load average: 0.04, 0.09, 0.04 这里主要关注load average ...
- python库安装如:requests,selenium等
安装方式: 1.pip安装: 如:pip install requests 2.wheel安装: 在PyPI上下载对应的wheel文件:如要下载requests的wheel文件,打开:http://p ...
- css第一篇:元素选择器
1:多个选择器 h1, h2 {} ——h1或h2标签的所有元素 2:通配选择器 * {} ——所有元素 3:元素选择器 div {} ——所有div元素 4:类选择器 .te ...
- Oracle批量插入数据SQL语句太长出错:无效的主机/绑定变量名
Oracle数据库,用mybatic批量插入数据: <insert id="saveBatch" parameterType="io.renren.entity.N ...
- 高阶篇:5)仿真研究Simulation studies
本章目的:了解仿真,初步学会怎么应用仿真. 1.仿真的定义 仿真------就是用模型(物理模型或数学模型)代替实际系统进行实验和研究. 把实际系统建立成物理模型或数学模型进行研究,然后把对模型实 ...
- [短期持续更新]Codeforces 构造题一览
说实话我觉得做这种题很没意思(不够硬核), 可是人有短板终究是要补的...起码这种类型补起来相对简单 所以还是把先前准备好的专题放下吧,做点实现上比较休闲的题 ps.为了精简篇幅,代码全部丢到ubun ...
- 02-线性结构4 Pop Sequence (25 分)
Given a stack which can keep M numbers at most. Push N numbers in the order of 1, 2, 3, ..., N and p ...
- mysql for mac 上的安装及用DataGrip连接
---恢复内容开始--- 1.首先下载MySQL的mac版本,地址百度就行了. 2.这个时候需要注意安装的时候,弹出来的一个类似窗口,上面有提示默认密码,但是我当时就忘记了这个默认密码,如果你记住了默 ...
- Clarke Award for Imagination in Service to Society刘慈欣演讲
刘慈欣不无批评地写道(http://cn.chinadaily.com.cn/2018-11/12/content_37243853.htm): 科幻的想象力由克拉克的广阔和深远,变成赛博朋克的狭窄和 ...