/* 给定n头牛,m个谷仓,每头牛只能在一些特定的谷仓,一个谷仓只能有一头牛 问可行的安排方式 dp[i][j]表示前i头牛组成状态j的方案数,状态0表示无牛,1表示有牛 使用滚动数组即可 枚举到第i头牛时,状态j必须有i-1头牛,然后由这个状态推导出第i头牛的状态,再清0 */ #include ... ...
分类:
其他好文 时间:
2019-02-10 00:17:24
阅读次数:
184
/* dp[S]表示状态S下的最大收益,0表示没有了,1表示还在 */ #include using namespace std; int dp[1>n && n){ for(int i=1;i>mp[i][j]; memset(dp,0,sizeof dp); int ans=0; for(int... ...
分类:
其他好文 时间:
2019-02-10 00:04:46
阅读次数:
190
状压DP入门 最短Hamilton路径 Description 给定一张 n(n≤20) 个点的带权无向图,点从 0~n 1 标号,求起点 0 到终点 n 1 的最短Hamilton路径。 Hamilton路径的定义是从 0 到 n 1 不重不漏地经过每个点恰好一次。 Input Format 第一 ...
分类:
其他好文 时间:
2019-02-09 21:02:37
阅读次数:
215
状态压缩动态规划(简称状压dp)是另一类非常典型的动态规划,通常使用在NP问题的小规模求解中,虽然是指数级别的复杂度,但速度比搜索快,其思想非常值得借鉴。 为了更好的理解状压dp,首先介绍位运算相关的知识。 1.’&’符号,x&y,会将两个十进制数在二进制下进行与运算,然后返回其十进制下的值。例如3 ...
分类:
其他好文 时间:
2019-02-03 10:34:53
阅读次数:
389
【题解】 CF11D A Simple Task "传送门" $n \le 20$ 考虑状态压缩$dp$。 考虑状态,$dp(i,j,O)$表示从$i$到$j$经过点集$O$的路径有多少。 $dp(i,j,O \bigcup i)=\Sigma dp(i,p,O)$,$j p$有一条边。 考虑内存, ...
分类:
其他好文 时间:
2019-01-26 18:47:20
阅读次数:
209
"943.Find the Shortest Superstring 旅行商问题&状态压缩DP" Given an array A of strings, find any smallest string that contains each string in A as a substring. ...
分类:
其他好文 时间:
2019-01-19 16:19:49
阅读次数:
265
题面 "Loj" 题解 先转化题意,其实这题在乘了$n!$以后就变成了全排列中的最大前缀和的和(有点拗口)。$n\leq20$,考虑状压$DP$ 考虑一个最大前缀和$\sum\limits_{i=1}^pa_i$,这个位置$p$是最大前缀和的右界当且仅当对于$\forall r p$有:$\sum\ ...
分类:
其他好文 时间:
2019-01-18 16:25:26
阅读次数:
209
Bzoj 4145: [AMPPZ2014]The Prices 状态压缩dp $f[i][j]$表示前i个商店 , 状态为j的最小花费. 考虑什么东西也不买和买了东西. 买了东西的话,就要到i地. 然后转移:$f[i][j] = min(f[i][j] , f[i][j ^ (1 include ...
分类:
其他好文 时间:
2019-01-13 17:10:37
阅读次数:
211
题面题意:给你N个男生,N个女生,男生与男生之间都是朋友,女生之间也是,再给你m个关系,告诉你哪些男女是朋友,最后问你最多选几个人出来,大家互相是朋友. N最多为20 题解:很显然就像二分图了,男生一边女生一边的,然后一种解法就是 求图的最大独立集,(看起来很巧,实则也是一种套路) (最大独立集是一 ...
分类:
其他好文 时间:
2018-10-05 17:19:39
阅读次数:
206
[SCOI2005]互不侵犯 状压DP练习题 我们先审个题: 首先 注意 这道题的 数据范围 : $1\leq N \leq 9\ ,\ 0 \leq K\leq N^2$ 是不是真的很小啊,所以我们考虑用状压DP或爆搜的办法解。 解法: 这道题求方案数,那么可以很自然的想到用dp或者搜索,然而对于 ...
分类:
其他好文 时间:
2018-09-08 16:48:25
阅读次数:
136