【USACO 2008 Nov Gold】 1.Mixed Up Cows 状压DP、
来源:互联网 发布:筱崎爱 知乎 编辑:程序博客网 时间:2024/04/30 03:22
题解:
首先考虑dfs,但是看到答案的“64bit”就放弃了吧、
所以肯定是组合数、状压DP什么的,尤其是那个16,标准的状压数。
好吧,就是状压DP。
f[i][j]表示i是状压的01串表示哪个取了哪个没取,然后j是结尾字符,
虽然水,但是时间复杂度是可以过的。
代码:
#include <cmath>#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#define inf 0x3f3f3f3f#define N 16using namespace std;int a[N];int n,m,cnt;long long f[1<<N][N]; // 状压、结尾数字序号int main(){int i,j,k;scanf("%d%d",&n,&m);for(i=0;i<n;i++)scanf("%d",&a[i]);for(i=0;i<n;i++)f[1<<i][i]=1;cnt=1<<n;for(i=0;i<cnt;i++)for(j=0;j<n;j++)if(i&(1<<j))for(k=0;k<n;k++)if(!(i&(1<<k))&&abs(a[j]-a[k])>m)f[i|(1<<k)][k]+=f[i][j];long long ans=0;for(i=0;i<n;i++)ans+=f[cnt-1][i];cout<<ans<<endl;return 0;}
复制去Google翻译翻译结果
1 0
- 【USACO 2008 Nov Gold】 1.Mixed Up Cows 状压DP、
- USACO 2008 Nov Gold 1.Mixed Up Cows
- bzoj1231[USACO 2008 Nov]Mixed Up Cows混乱的奶牛
- 【USACO 2008 Nov Gold】 2.Cheering up the Cows 最小生成树、
- Cheering up the Cows,2008nov,usaco
- 【POJ3612】【USACO 2007 Nov Gold】 1.Telephone Wire 动规
- 【BZOJ1229】【USACO 2008 Nov Gold】 4.Toys sadstory 三分+贪心
- USACO 2011 Feb Gold 1.Cowlphabet(dp)
- 【Usaco 2010 NOV Gold】奶牛的图片
- 【Usaco 2010 NOV Gold】奶牛的图片
- 【JZOJ1922】【Usaco 2005 NOV Gold】小行星群
- 洛谷P2915 Usaco08 Mixed Up Cows
- 题解:cheering up the cows[USACO2008 NOV]
- USACO2013 Nov. Gold T3,一道集合DP
- 【USACO 2008 Nov Gold】 3.Light Switching(lites 开关灯) 区间修改线段树
- 【BZOJ1589】【USACO 2008 Dec Gold】 1.Trick or Treat on the Farm 基环树裸DP、
- USACO 2010 Mar Gold 1.Great Cow Gathering 树形dp
- 【POJ3613】【USACO 2007 Nov Gold】 2.Cow Relays 矩阵乘法?
- OJ循环——求两个数的最大公约数与最小公倍数(函数法)
- 记录-开篇
- 新手如何学习Linux
- C语言程序代码优化
- 买一卖一价格
- 【USACO 2008 Nov Gold】 1.Mixed Up Cows 状压DP、
- PAT 1060. Are They Equal (25)
- swift语言IOS8开发战记5.使用纯代码的方式实现tableViewCell
- vector 的迭代和删除元素
- Java中方法重载与方法重写
- 【Visual C++】游戏开发笔记二十八 最精简的Direct3D11 Demo筋骨脉络全攻略
- golang中sort包用法
- 实验四 字符串和多维数组
- Qt使用总结