题意:
将n头牛和m个栏做匹配,求匹配方案数。
分析:
开始暴搜tle了,还是要用状压dp,dp[i][s]表示前i头牛匹配栏的状态为s时可行的方案数。
代码:
//poj 2441
//sep9
#include
using namespace std;
const int maxN=21;
int dp[2][1<<maxN];
int a[maxN][maxN];
int mai...
分类:
其他好文 时间:
2015-01-07 14:58:54
阅读次数:
134
状压DP 我写的太水了……64ms才过,估计还有更好的做法,希望各位神犇不吝赐教>_12 #include13 #include14 #include15 #include16 #define rep(i,n) for(int i=0;i=n;--i)19 using namespace std;....
分类:
其他好文 时间:
2015-01-05 21:53:07
阅读次数:
224
题解:
首先考虑dfs,但是看到答案的“64bit”就放弃了吧、
所以肯定是组合数、状压DP什么的,尤其是那个16,标准的状压数。
好吧,就是状压DP。
f[i][j]表示i是状压的01串表示哪个取了哪个没取,然后j是结尾字符,
虽然水,但是时间复杂度是可以过的。
代码:
#include
#include
#include
#include
#include...
分类:
其他好文 时间:
2015-01-02 12:17:27
阅读次数:
148
麻麻问我为什么跪倒在地这么高端的求法!!!spfa优化DP。。。等等,斯坦纳树的求法是DP?还是状压DP!Σ( ° △ °||)蒟蒻彻底跪了,还是Orz hzwer吧2333 1 /**********************************************************....
分类:
其他好文 时间:
2014-12-30 23:22:22
阅读次数:
280
这道题很容易想到状压dp,首先跑一遍floyd求出各个点之间的最短路,然后dp。
状态是dp[i][j]表示状态为i(二进制,表示是否访问过每个点),在位置j时的最短路。
转移就是:dp[i][j]=min(dp[i-(1<<v)][u]+grid[u][v],dp[i][j]),其中v是当前位置,u是上一个状态的位置。
需要注意的是dp的顺序应该是由含1的个数少的二进制到1的个数高的二进制;由于最开始就在0位置,所以dp[(1<<n)-1][0]不可能被转移到,所以最后的答案应该是ans=min(ans,...
分类:
其他好文 时间:
2014-12-26 20:22:01
阅读次数:
260
Chocolate in its many forms is enjoyed by millions of people around the world every day. It is a truly universal candy available in virtually every co...
分类:
其他好文 时间:
2014-12-23 06:37:43
阅读次数:
269
Problem HHackers’ CrackdownInput:Standard InputOutput:Standard OutputMiracle Corporations has a number of system services running in a distributed com...
分类:
其他好文 时间:
2014-12-23 06:36:06
阅读次数:
146
Relocation
Time Limit: 1000MS
Memory Limit: 65536K
Total Submissions: 2288
Accepted: 950
Description
Emma and Eric are moving to their new house they bought after r...
分类:
其他好文 时间:
2014-12-18 01:43:08
阅读次数:
336
题目地址:SDUT 3061
这题的比赛的时候的后台数据是错的。。。好坑啊。。。。就不吐槽出题人了。。
比赛的时候我的思路是错的,漏考虑了一种情况。应该把所有状态下的最短距离都要求出来,而我当时的思路是按照前面能选两个则选两个的贪心思路来状压,但是有的时候可以最多走奇数个并且没全走完,这种情况下就不对了。
正确思路是每次找两个没走过的状态,分成选一个和选两个两种情况来DP。然后最后找所有状态...
分类:
其他好文 时间:
2014-12-16 10:05:55
阅读次数:
123
给定一个m*n的方格子,要求用3*1的骨牌去覆盖,骨牌可以用横放或者竖放,问最终有多少种放置方式,将其铺满。分析:由于最多30行,每行最多9列,所以可以按行来dp,设计每行的状态从而进行转移,考虑每个骨牌放置对下一行的影响,共有0,1,2,3种方式,0对应横放或者竖放时最下面那个格子,此行对下一行没...
分类:
其他好文 时间:
2014-12-13 21:44:15
阅读次数:
152