BZOJ 1231: [Usaco2008 Nov]mixup2 混乱的奶牛
来源:互联网 发布:华南师范大学网络自助 编辑:程序博客网 时间:2024/06/10 01:21
其实就是一道状压DP嘛练练手也不错。。然而我发现我的状压好像不是太好T_T
f[i][j]表示上一个是i 状态为j的方案数,怎么状态转移就不用我说了吧。。
那个,因为每次转移都是比表示当前状态大的状态,所以只用1到(1<<n)-1 for一次就好了。。。
注意:逻辑运算要先括起来。。T_T
#include<cmath>#include<cstdio>#include<algorithm>using namespace std;typedef long long LL;const int maxn=(1<<16)+5;int p[17],a[17];LL f[17][maxn],ans;int main(){ int n,m,i,j,x; p[1]=1; for(i=2;i<17;i++)p[i]=p[i-1]<<1; scanf("%d%d",&n,&m); for(i=1;i<=n;i++)scanf("%d",&a[i]),f[i][p[i]]=1; int k=(1<<n)-1; for(x=1;x<=k;x++) for(i=1;i<=n;i++) if(x&p[i]) for(j=1;j<=n;j++) if( (x&p[j])==0 && abs(a[i]-a[j])>m) f[j][x+p[j]]+=f[i][x]; for(i=1;i<=n;i++)ans+=f[i][k]; printf("%lld\n",ans); return 0;}
1 0
- BZOJ 1231: [Usaco2008 Nov]mixup2 混乱的奶牛
- bzoj 1231 [Usaco2008 Nov]mixup2 混乱的奶牛
- BZOJ 1231: [Usaco2008 Nov]mixup2 混乱的奶牛
- BZOJ 1231: [Usaco2008 Nov]mixup2 混乱的奶牛 状压DP
- [BZOJ 1231][Usaco2008 Nov]mixup2 混乱的奶牛:状压DP
- BZOJ 1231: [Usaco2008 Nov]mixup2 混乱的奶牛 状压dp
- BZOJ 1231: [Usaco2008 Nov]mixup2 混乱的奶牛 状压dp
- 1231: [Usaco2008 Nov]mixup2 混乱的奶牛
- 1231: [Usaco2008 Nov]mixup2 混乱的奶牛
- bzoj1231[Usaco2008 Nov]mixup2 混乱的奶牛
- [BZOJ1231] [Usaco2008 Nov]mixup2 混乱的奶牛
- Bzoj1231 [Usaco2008 Nov]mixup2 混乱的奶牛
- BZOJ1231: [Usaco2008 Nov]mixup2 混乱的奶牛
- bzoj1231: [Usaco2008 Nov]mixup2 混乱的奶牛
- BZOJ1231 [Usaco2008 Nov]mixup2 混乱的奶牛
- bzoj 1231: [Usaco2008 Nov]mixup2 混乱的奶牛(状压DP)
- [Usaco2008 Nov]mixup2 混乱的奶牛 简单状压DP
- 【bzoj1231】【Usaco2008 Nov】mixup2 混乱的奶牛【状压dp】
- 平衡二叉树
- 韩信点兵问题算法
- POJ 2100 Graveyard Design(尺取法)
- 2016年暑假和传余学长所学到的那点事
- 写一个很low的表单
- BZOJ 1231: [Usaco2008 Nov]mixup2 混乱的奶牛
- foreign key
- Android性能优化之使用线程池处理异步任务
- QUTOJ 1222检查金币 水题
- 中断处理过程和中断服务程序ISR的限制
- DAO基础功能实现
- BFS/DFS模板
- iOS 信号量在GPUImage中的使用
- 底部导航栏实现页面的切换(一):Fragment + LinearLayout + TextView