【bzoj1231】[Usaco2008 Nov]mixup2 混乱的奶牛
题目描述
混乱的奶牛[Don Piele, 2007]Farmer John的N(4 <= N <= 16)头奶牛中的每一头都有一个唯一的编号S_i (1 <= S_i <= 25,000). 奶牛为她们的编号感到骄傲, 所以每一头奶牛都把她的编号刻在一个金牌上, 并且把金牌挂在她们宽大的脖子上. 奶牛们对在挤奶的时候被排成一支"混乱"的队伍非常反感. 如果一个队伍里任意两头相邻的奶牛的编号相差超过K (1 <= K <= 3400), 它就被称为是混乱的. 比如说,当N = 6, K = 1时, 1, 3, 5, 2, 6, 4 就是一支"混乱"的队伍, 但是 1, 3, 6, 5, 2, 4 不是(因为5和6只相差1). 那么, 有多少种能够使奶牛排成"混乱"的队伍的方案呢?
输入
* 第 1 行: 用空格隔开的两个整数N和K
* 第 2..N+1 行: 第i+1行包含了一个用来表示第i头奶牛的编号的整数: S_i
输出
第 1 行: 只有一个整数, 表示有多少种能够使奶牛排成"混乱"的队伍的方案. 答案保证是 一个在64位范围内的整数.
样例输入
4 1
3
4
2
1
样例输出
2
题解
裸的状态压缩dp
但是注意要开long long
f[i][j]表示以i结尾j状态的方案数
#include <cstdio>
#include <cstdlib>
long long f[17][65540] , s[17];
int main()
{
long long n , p , i , j , k , l , ans = 0;
scanf("%lld%lld" , &n , &p);
for(i = 1 ; i <= n ; i ++ )
scanf("%lld" , &s[i]);
for(i = 1 ; i <= n ; i ++ )
f[i][1 << (i - 1)] = 1;
for(i = 0 ; i < (1 << n) ; i ++ )
for(j = 1 ; j <= n ; j ++ )
if(f[j][i])
for(k = 1 ; k <= n ; k ++ )
if(!((1 << (k - 1)) & i) && abs(s[j] - s[k]) > p)
f[k][(1 << (k - 1)) | i] += f[j][i];
for(i = 1 ; i <= n ; i ++ )
ans += f[i][(1 << n) - 1];
printf("%lld\n" , ans);
return 0;
}
【bzoj1231】[Usaco2008 Nov]mixup2 混乱的奶牛的更多相关文章
- bzoj1231[Usaco2008 Nov]mixup2 混乱的奶牛(状压dp)
1231: [Usaco2008 Nov]mixup2 混乱的奶牛 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1032 Solved: 588[ ...
- 【状压dp】Bzoj1231 [Usaco2008 Nov]mixup2 混乱的奶牛
Description 混乱的奶牛 [Don Piele, 2007] Farmer John的N(4 <= N <= 16)头奶牛中的每一头都有一个唯一的编号S_i (1 <= S ...
- bzoj1231 [Usaco2008 Nov]mixup2 混乱的奶牛——状压DP
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1231 小型状压DP: f[i][j] 表示状态为 j ,最后一个奶牛是 i 的方案数: 所以 ...
- bzoj1231: [Usaco2008 Nov]mixup2 混乱的奶牛
思路:状压dp,设f[i][j]表示当前已经选出的牛的状态为i,最后一头选出的牛为j的方案数. 然后注意就是初值不能是f[0][i]=1,因为所有牛本来都可以第一个被选中,然而这样一定初值有些牛可能就 ...
- [Usaco2008 Nov]mixup2 混乱的奶牛 简单状压DP
1231: [Usaco2008 Nov]mixup2 混乱的奶牛 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 685 Solved: 383[S ...
- BZOJ 1231: [Usaco2008 Nov]mixup2 混乱的奶牛( dp )
状压dp dp( x , S ) 表示最后一个是 x , 当前选的奶牛集合为 S , 则状态转移方程 : dp( x , S ) = Σ dp( i , S - { i } ) ( i ∈ S , ...
- bzoj 1231: [Usaco2008 Nov]mixup2 混乱的奶牛 -- 状压DP
1231: [Usaco2008 Nov]mixup2 混乱的奶牛 Time Limit: 10 Sec Memory Limit: 162 MB Description 混乱的奶牛 [Don Pi ...
- bzoj[Usaco2008 Nov]mixup2 混乱的奶牛 状压dp
[Usaco2008 Nov]mixup2 混乱的奶牛 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1204 Solved: 698[Submit ...
- 【bzoj1231】[Usaco2008 Nov]mixup2 混乱的奶牛 状态压缩dp
题目描述 混乱的奶牛[Don Piele, 2007]Farmer John的N(4 <= N <= 16)头奶牛中的每一头都有一个唯一的编号S_i (1 <= S_i <= ...
随机推荐
- 同步降压DC-DC转换IC——XC9264
设计一个12V转3.3V,输出电流30mA的电源电路,由于项目对转化效率要求较高,所以不能采用低压差线性稳压LDO的方案.经过对比,TOREX的XC9264效率在此转化条件下效率可做到85%以上,比M ...
- 【原】pageResponse - 让H5适配移动设备全家(移动端适配)
上一篇文章<为什么选择iPhone5的分辨率作为H5视觉稿尺寸>最后留下了问题:是否需要视觉设计师设计多套的视觉稿供给前端工程师做页面适配呢?按照自己以前的方法,通常会要求设计师设计2套的 ...
- MPLS与LDP从入门到了解
多协议标签交换(MPLS)是一种用于快速转发数据包的技术,它的出现就是为了提高转发效率.因为IP转发大多靠软件进行,在转发的每一跳都要进行至少一次最长匹配查找,操作复杂导致转发速度比较慢.有些厂商借鉴 ...
- 局域网象棋游戏(C++实现,使用Socket,界面使用Win32,CodeBlocks+GCC编译)
目录 成果 运行效果图 过程 1. 首先的问题是下棋的两端应该是什么样的? 2. 接下来的问题是怎么表示,怎么存储? 3. 然后应该怎么通信呢? 代码 main.cpp chinese_chess.h ...
- PAT 1044. 火星数字(20)
火星人是以13进制计数的: 地球人的0被火星人称为tret. 地球人数字1到12的火星文分别为:jan, feb, mar, apr, may, jun, jly, aug, sep, oct, no ...
- weui 弹框中的单选效果
<!--性别修改弹框--> <div class="weui_dialog_alert" id="doctorSexDialog" style ...
- 解决win7系统重启后ip丢失问题,即每次电脑重启都要重新设置ip地址,重启后ip地址没了
自己制作的Ghost盘上网有点问题,每次重启后电脑的ip地址被还原,要重新设置 百度后终于找解决办法,在此记录. 第一步:点击左下角的WIN图标,输入CMD然后回车,打开DOS模式窗口. 第二步:在D ...
- 【IT】公司FTP服务器使用说明
FTP服务器的作用:----------------------------------------------1.员工个人或者部门资料临时备份(而不是永久归档): 2.部门或员工间交换巨大资料: 3 ...
- 微软 消息队列 MessageQueue 简单使用
1.在服务电脑上打开 消息队列 ①进入控制面板>程序>启用或关闭windows功能 ②将需要的勾选(我自己全选了哈哈哈) ③我的电脑 右键 打开管理 见到消息队列 在专用队列上新建专用队列 ...
- Markdown语法 中文版
文章翻译自Markdown创始人JOHN GRUBER的 个人博客, 英文原文请参见 Markdown Syntax; 本文地址: http://www.cnblogs.com/ayning/p/43 ...