[USACO08NOV]奶牛混合起来--状态压缩
2018-01-24 11:09
477 查看
数据范围提示了状态压缩,在当前结点的基础上,看能否扩展出那些结点。与哈密尔顿回路是一样的。
回顾:哈密尔顿回路:http://blog.csdn.net/lengxuenong/article/details/78204873
回顾:哈密尔顿回路:http://blog.csdn.net/lengxuenong/article/details/78204873
#include<iostream> using namespace std; const int maxn=(1<<17); int n,K,num,c[20]; long long ans=0; long long f[20][maxn]; bool ab(int x,int y){ if(x>y&&x-y>K)return true; if(x<y&&y-x>K)return true; return false; } long long dp(){ f[0][0]=1; num=(1<<n); for(int i=1;i<=n;i++)f[i][(1<<(i-1))]=1; for(int i=1;i<num;i++) for(int j=1;j<=n;j++){if(i&(1<<(j-1)))//有j的情况下 for(int k=1;k<=n;k++){//看后面可否接上k; if((1<<(k-1))&i)continue; if(!ab(c[j],c[k]))continue; f[k][i|(1<<(k-1))]+=f[j][i]; } } for(int i=1;i<=n;i++)ans+=f[i][num-1]; return ans; } int main(){ cin>>n>>K; for(int i=1;i<=n;i++)cin>>c[i]; c[0]=-K; cout<<dp(); }
相关文章推荐
- 洛谷 P2915 [USACO08NOV]奶牛混合起来Mixed Up Cows
- P2915 [USACO08NOV]奶牛混合起来(状压dp入门)
- P2915 [USACO08NOV]奶牛混合起来Mixed Up Cows
- 洛谷P2915 [USACO08NOV]奶牛混合起来Mixed Up Cows
- 【USACO08NOV】奶牛混合起来Mixed Up Cows
- [USACO08NOV]奶牛混合起来Mixed Up Cows
- 洛谷2915 usaco08nov 奶牛混合起来 Mixed Up Cows
- luogu P2915 [USACO08NOV]奶牛混合起来Mixed Up Cows
- P2915 [USACO08NOV]奶牛混合起来Mixed Up Cows
- [luoguP2915] [USACO08NOV]奶牛混合起来Mixed Up Cows(DP)
- 【bzoj1231】[Usaco2008 Nov]mixup2 混乱的奶牛 状态压缩dp
- 【bzoj3312】[Usaco2013 Nov]No Change 状态压缩dp+二分
- BZOJ 1725 [Usaco2006 Nov]Corn Fields牧场的安排 状态压缩DP
- 【bzoj1725】[USACO2006 Nov]Corn Fields牧场的安排 状态压缩dp
- 洛谷P3092 [USACO13NOV]没有找零——状态压缩
- 1706: [usaco2007 Nov]relays 奶牛接力跑
- 【BZOJ 1641】【Usaco2007 Nov】Cow Hurdles 奶牛跨栏(最短路变形)
- BZOJ 1641: [Usaco2007 Nov]Cow Hurdles 奶牛跨栏
- 【Floyd矩阵乘法】BZOJ1706- [usaco2007 Nov]relays 奶牛接力跑
- bzoj 1232: [Usaco2008Nov]安慰奶牛cheer (kruskal)