码迷,mamicode.com
首页 >  
搜索关键字:状压    ( 1865个结果
CF 544E(状压
题目:若干长度相同的字符串,如果一个字符串至少有一个字符与其他字符串这一位的字符都不一样,那它就是好记的,现在问把整合集合都变成好记的最小花费。思路:虽然一看就是状压,但是有些地方没理清楚导致一直过不了,首先因为最多有20个字符串而字符集有26,改一个字符肯定可以不与其他字符冲突。然后状态转移中分改...
分类:其他好文   时间:2015-07-29 06:21:18    阅读次数:114
POJ 2777 Count Color
题目链接:http://poj.org/problem?id=2777题意:给定长度L的区间,初始全部为1。两种操作 1. 更新:C A B C 将区间[A,B]全部赋值为C。 2. 查询:P A B 查询区间[A,B]的颜色种数。思路:基本为裸的区间更新。 因为最多只有30种颜色,所以在存储某个区间的颜色类型和种数时,可以利用一个int数来存储(利用每一位的二进制,1为有该颜色,0位无该...
分类:其他好文   时间:2015-07-27 21:00:57    阅读次数:124
Balanced Numbers(数位+状压)
题意:求给定区间,一个数的数位上每个奇数出现偶数次,每个偶数出现奇数次,这样数的个数分析:先考虑状态,但总是想不全,所以要把状态压缩一下,用三进制,0 该数不放 1 放了奇数次 2放了偶数次dp[i][j] 长度为i 状态是j的数字个数,需要前导0判断,前导0不能计入偶数出现的次数。#include...
分类:其他好文   时间:2015-07-27 20:38:23    阅读次数:121
hdu 4234
题意: 一个人在原点,速度大小已知。n个目标的初始坐标,速度方向,速度大小均已知。求人抓到所有目标的最小时间和。解决: 题目给定n <= 15,这个数据范围可以接受15!的暴搜搜加上一定剪枝,或者n*2^n,状压DP。 dp[i][state]表示追上目标 i 之后,当前局面状态为state时...
分类:其他好文   时间:2015-07-27 14:44:53    阅读次数:90
hdu 4336 概率dp + 状压
hdu 4336 小吃包装袋里面有随机赠送一些有趣的卡片,现在你想收集齐 N 张卡片,每张卡片在食品包装袋里出现的概率是p[i] ( Σp[i] 对于每袋食品,有两种结果,该卡片已经收集到了和没有收集到(没有卡片的情况视为收集到了)。 把已经收集到的卡片的集合记为 s ,dp[s] 表示已经收集到集合s的卡片情况下收集齐所有的卡片的购买数量的期望,s 为空集即为所求。s  为全...
分类:其他好文   时间:2015-07-27 13:19:07    阅读次数:126
hdu 4336 概率dp + 状压
hdu 4336小吃包装袋里面有随机赠送一些有趣的卡片,现在你想收集齐 N 张卡片,每张卡片在食品包装袋里出现的概率是p[i] ( Σp[i] #include #include #include using namespace std;int n;double p[22];double dp[(1...
分类:其他好文   时间:2015-07-27 12:57:38    阅读次数:106
[POJ1038]状压DP
题意:给一个n*m的区域,里面有一些障碍物,往里面放2*3和3*2的矩形,矩形之间不能重叠,不能覆盖到障碍物,求能放置的最大个数。(n#include#include#include#include#include#include#include#include#includeusingnamesp...
分类:其他好文   时间:2015-07-27 07:03:25    阅读次数:234
HDU 2167 状压DP
方格取数问题,给出n*n矩阵,3 求能取得的最大和,要求取某个位置的数以后,其周围的8个数字均不能再取 先预处理出来所有的可取状态,n=15时只有1597个状态,然后地推求解即可 #include "stdio.h" #include "string.h" int n,ans; int b[21],a[21][21],s[1700]; int dp[21][70001],sum[21...
分类:其他好文   时间:2015-07-25 18:32:51    阅读次数:124
HDU 4628 Pieces (状压DP)
题目地址:HDU 4628 这题没想到怎么快速枚举子状态。。。看了题解才知道的。 用for(state=i;state>0;state=(state-1)&i)就可以了。 这题的具体做法是先预处理出所有的状态是不是回文串,然后就是普通的DP了。 代码如下:#include #include #include #include <q...
分类:其他好文   时间:2015-07-25 16:58:25    阅读次数:136
HDU 4568 旅行商问题
一个N*M的迷宫,每个点有代价,代价为-1时表示不能走到,迷宫中有k个宝藏,求取走所有宝藏所需要的最小代价,只能进入迷宫一次 计算出所有宝藏之间的最短距离及从该宝藏出迷宫的最短距离,然后做状压DP即可 #include "stdio.h" #include "string.h" #include "queue" using namespace std; struct node { i...
分类:其他好文   时间:2015-07-25 16:56:14    阅读次数:164
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!