状压DP+数学期望 蒟蒻不会啊……看题跑…… Orz了一下Hzwer,发现自己现在真是太水了,难道不看题解就一道题也不会捉了吗? 题目数据范围不大……100*(2^16)很容易就跑过去了…… DP的时候max一下是接不接当前这第k个宝物……最后除以N(算期望) 1 /************...
分类:
其他好文 时间:
2015-02-22 23:06:52
阅读次数:
197
简单状压DP:
当前状态s如果这个物品有状态a个属性,枚举下一个要猜测的特征k
dp[s][a]=min(dp[s][a],max(dp[s+k][a],dp[s+k][a+k])+1);dp[s][a]=min(dp[s][a],max(dp[s+k][a],dp[s+k][a+k])+1);
4643 - Twenty QuestionsAsia - Tokyo - 2009/201...
分类:
其他好文 时间:
2015-02-22 17:22:12
阅读次数:
200
题意:
给4*n(n
分析:
又是铺瓷砖,不过这次n太大,不能再一个一个格的dp了。可以先算出相邻两行的状态转移,再用矩阵来加速n行的状态转移。
代码:
//poj 3420
//sep9
#include
using namespace std;
const int maxN=16;
struct MATRIX
{
__int64 m[maxN][maxN];
}mat;
in...
分类:
其他好文 时间:
2015-02-22 11:04:01
阅读次数:
158
POJ 3311 Hie with the Pie (Floyd + 状压dp 简单TSP问题)...
分类:
其他好文 时间:
2015-02-21 06:32:15
阅读次数:
212
POJ 2411 && HDU 1400 Mondriaan's Dream (状压dp 经典题)...
分类:
其他好文 时间:
2015-02-21 00:19:06
阅读次数:
187
题意:
给3*N(N
分析:
同poj2411。
代码:
#include
using namespace std;
__int64 ans[32][4];
int n,m;
__int64 dp[2][1<<4];
__int64 solve()
{
int i,j,used;
memset(dp,0,sizeof(dp));
__int64 *crt=dp[0],*nxt=...
分类:
其他好文 时间:
2015-02-17 00:47:36
阅读次数:
149
题意:
求h*w的矩形被1*2的小矩形覆盖的方案数。
分析:
状压dp入门,《挑战程序设计竞赛》上讲的很好,好几天才看懂。
代码:
#include
using namespace std;
__int64 ans[16][16];
int n,m;
__int64 dp[2][1<<16];
__int64 solve()
{
int i,j,used;
memset(dp,0...
分类:
其他好文 时间:
2015-02-16 19:42:21
阅读次数:
136
链接:http://poj.org/problem?id=3311题意:有N个地点和一个出发点(Ndp[j]一定是最短的。由于dp[i]记录的“当前位置”不一定是能使dp[j]最小的当前位置。所以dp[i][j]中,i表示的二进制下的当前已经经过的状态,j表示的是在当前状态下眼下所在的位置。代码:#...
分类:
其他好文 时间:
2015-02-16 13:02:34
阅读次数:
113
题目链接:点击打开链接
题意:
给定n个城市和m条可选择修建的道路
下面n行给出每个城市的名字
下面m行给出每条道路及修建该道路的花费。
下面4行,每行给出一对城市。
目标:使得最后4行的每对城市连通(不同对之间可以不连通)所需要修建的最小花费。
数据保证存在可行解
思路:
首先如果这个问题问的是所有城市都连通,就是一个最小生成树的问题。
这里就相当于多个最小生成树的 问题。...
分类:
其他好文 时间:
2015-02-12 16:11:52
阅读次数:
245