BZOJ 1231: [Usaco2008 Nov]mixup2 混乱的奶牛 状压DP

Stata: 空间面板数据模型及Stata实现   作者:游万海 (福州大学) Stata 连享会: 知乎 | 简书 | 码云 | 优快云   来源:Golgher 和 Voss (2016)   1. 背景介绍 由于面板数据模型所具有的众多优点 (刻画个体异质性,减弱模型共线性和增加自由度等),其被广泛应用于实证计量中。在 「 Stata: 面板数据模型-一文读懂」 文中,我们已对面板数据模型进行了介绍。 然而,当研究样本涉及到多个... 阅读详情

Description

混乱的奶牛 [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). 那么, 有多少种能够使奶牛排成”混乱”的队伍的方案呢?
Input

  • 第 1 行: 用空格隔开的两个整数N和K

  • 第 2..N+1 行: 第i+1行包含了一个用来表示第i头奶牛的编号的整数: S_i
    Output

第 1 行: 只有一个整数, 表示有多少种能够使奶牛排成”混乱”的队伍的方案. 答案保证是 一个在64位范围内的整数.
Sample Input
4 1

3

4

2

1

Sample Output
2

输出解释:

两种方法分别是:

3 1 4 2

2 4 1 3

解题方法:
设dp[i][j]表示以第i个奶牛结尾,奶牛的选择状态为j的方案数。
转移方程也比较简单
dp[k][(1<<(k-1))|j]+=dp[i][j];(abs(a[k]-a[i])>K,(1<<(k-1))|j!=j,(1<<(i-1))&j!=0)
初始令dp[i][1<

//BZOJ 1231

#include <bits/stdc++.h>
using namespace std;

long long dp[20][1<<16], ans;
int n, kk, mask;
int a[20], bin[20];
///dp[i][j]表示以第i个奶牛结尾,奶牛的选择状态为j的方案数

int main()
{
    scanf("%d%d", &n, &kk);
    mask = (1<<n)-1;
    for(int i=1; i<=n; i++){
        scanf("%d", &a[i]);
        bin[i]=1<<(i-1);
    }
    for(int i=1; i<=n; i++) dp[i][bin[i]]=1;
    for(int i=0; i<=mask; i++){
        for(int j=1; j<= n; j++){
            if(bin[j]&i){
                for(int k=1; k<=n; k++){
                    if((bin[k]|i)!=i&&abs(a[k]-a[j])>kk){
                        dp[k][bin[k]|i]+=dp[j][i];
                    }
                }
            }
        }
    }
    for(int i=1; i<=n; i++) ans += dp[i][mask];
    printf("%lld\n", ans);
    return 0;
}
power bi 演唱会-佐罗 我是业务分析人员,注重使用性,因此,课程不到 30% 的内容就可以解决目前为止我碰到的所有业务问题,剩下的 70% 内容是帮助我提升,优化,升华,精益求精用的,比如第三方工具,比如代码运行速度优化,比如查询逻辑优化等等。系统性上来说,结构明晰,安排上非常有条理,层层递进;《BI 真经》,中有真经二字,略显夸大,而当我第一次证明了这点的时候,我也非常惊讶,这就是我做以下所有事情的一切动力。《BI 真经》综合考量思想性,系统性,本质性,创新性,通用性,技巧性,启发性,对比其他课程有压倒性的显著优势。 阅读详情

相关推荐

Keil 5安装教程(C51与MDK共存)

目录前言MDK的安装C51的安装安装完成后的验证新建C51工程添加C51程序文件编译测试总结 前言 本篇文章将介绍嵌入式开发工具Keil 5的安装方法,并使MDK(Microcontroller Development Kit,开发stm32时会用到)和C51(51单片机C语言软件开发系统)共存。今后使用Keil 5可同时开发51单片机程序和ARM单片机程序,便于学习与从51到32的过渡。 注: 为防止商业纠纷,本篇文章不涉及文中软件的注册破解,请支持正版。 同时为了便于今后更深入的学习,本文不会介绍软件的

xushu_me的博客 6万+

Luogu3092 [USACO13NOV]没有找零No Change (状压DP)

将金币状压,然后就没多说的了。 #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <cmath> #define R(a,b,c) for(register int a = (b); a <= (c); ++...

weixin_30780221的博客 156

LAP-D协议概述

Q.921协议由称为LAPD(链路访问协议-D通道),与HDLC的关系密切,它是在ISDN D通道上使用的数据链路协议。 注:http://www.freesoft.org/CIE/Topics/125.htm LAP-D的帧格式 标志、位填充技术和FCS校验计算与HDLC一致。 16位的地址包括C/R字段、SAPI(服务访问点标识)和TEI(端点标识)。TEI用于区分使用相同ISDN...

系统运维 1914

BZOJ1231: [Usaco2008 Nov]mixup2 混乱的奶牛

Portal(一开始题目看错,看成有一对相邻数相差大于K就算入答案。。还调了巨久。)这题dp方式比较奇特(可能是我很弱鸡),是按状态的大小从小往大推,一开始一个位置一个位置的往后推不是很好做,看了题解才明白这种做法,很巧妙,而且思路其实也很简单易懂。 dp[i][j]表示末位为i,状态为j的方案数。 递推就是dp[k][t[k]|i]+=dp[j][i];(t[k]=(1<<(k-1))【代码】

Heret1c 495

机器学习——Anaconda下载安装教程

Anaconda详细下载安装教程

2401_83693485的博客 3068

【Excel VBA 编程】表格内自动生成进度条

在表格中生成进度条,进度条需要自适应单元格的宽度,根据不同进度区间变换颜色,并且按照进度数据大小显示其长短

wei1019的专栏 1519

bzoj1231 [Usaco2008 Nov]mixup2 混乱的奶牛(状压dp)

dp[s][i]表示状态s,为1的表示已选,i表示最后一个是谁,考虑j能接在i后面,如果j没被选过且差超过k。复杂度O(2^n*n*n)

Icefox的博客 397

手把手教你用闲置安卓手机搭建个人收款系统(蓝鲸支付私有化部署实战)

本文详细介绍了如何利用闲置安卓手机搭建个人收款系统,实现私有化支付部署。通过开源技术栈和容器化方案,零成本构建安全、高效的支付网关,解决传统支付平台的数据安全和资金风险问题。特别适合个人开发者和小微企业主,无需复杂审批,资金实时到账,显著降低运营成本。

weixin_30363285的博客 381

BZOJ 1231: [Usaco2008 Nov]mixup2 混乱的奶牛

其实就是一道状压DP嘛练练手也不错。。然而我发现我的状压好像不是太好T_T f[i][j]表示上一个是i 状态为j的方案数,怎么状态转移就不用我说了吧。。 那个,因为每次转移都是比表示当前状态大的状态,所以只用1到(1  注意:逻辑运算要先括起来。。T_T #include #include #include using namespace std; typedef long long L

cgh_Andy's Blog 725

Android 集成 Google 与 Facebook 第三方登录实战详解(2024版)

本文详细介绍了2024年Android应用集成Google与Facebook第三方登录的完整实战指南。通过分步教程和代码示例,帮助开发者快速实现一键登录功能,提升用户体验和注册转化率,同时涵盖隐私合规和常见错误处理的最佳实践。

blue的专栏 822

高德地图爬虫

高德地图爬虫 工具:Pycharm,win10,Python3.6.4 1.需求分析 这篇爬虫和上一篇百度地图爬虫要求一样,百度地图爬虫我发现有一个auth参数会一直变化,一旦变化则获取的数据是不准确的,所以我上高德地图看了一下,高德地图没有这个反爬机制。但是高德地图大概爬取120个页面就会跳一次验证码,我这里是通过换IP解决这个问题的。 2.数据准备 同样我们需要全国地级市信息,用之前...

123的博客 1万+

Bzoj1231 [Usaco2008 Nov]mixup2 混乱的奶牛

原题网址:http://www.lydsy.com/JudgeOnline/problem.php?id=1231 题目简述:给出nn(4≤\len≤\le16)个数,求满足任意相邻元素差大于kk的排列数。 题解:看数据范围像是压位,实际上就是压位。用f[i][j][s]f[i][j][s]表示前ii位,最后一位是jj,已经放过的集合是ss的方案数。枚举第i+1i+1位放什么,直接转移即可。va

MintGreen 608

STM32平台中ARM架构向量表配置:手把手教程

深入讲解STM32平台下arm架构的向量表配置方法,结合实际操作步骤,帮助开发者掌握中断向量的定位与初始化,提升嵌入式系统开发效率。

weixin_42514540的博客 802

BZOJ 1231: [Usaco2008 Nov]mixup2 混乱的奶牛【状压DP】

1231: [Usaco2008 Nov]mixup2 混乱的奶牛 Time Limit: 10 Sec Memory Limit: 162 MB Description 混乱的奶牛 [Don Piele, 2007] Farmer John的N(4 <= N <= 16)头奶牛中的每一头都有一个唯一的编号S_i (1 <= S_i <= 25,00...

aiweiluan5095的博客 98

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

【bzoj1231】【Usaco2008 Nov】mixup2 混乱的奶牛【状压dp】

Description 混乱的奶牛 [Don Piele, 2007] Farmer John的N(4 <= N <= 16)头奶牛中的每一头都有一个唯一的编号S_i (1 <= S_i <= 25,000). 奶牛为她们的编号感到骄傲, 所以每一头奶牛都把她的编号刻在一个金牌上, 并且把金牌挂在她们宽大的脖子上. 奶牛们对在挤奶的时候被排成一支"混乱"的队伍非常反感. 如果一个队伍里任

sunshinezff的专栏 1043

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

[bzoj1231][Usaco2008 Nov]mixup2 混乱的奶牛 状压dp

1231: [Usaco2008 Nov]mixup2 混乱的奶牛 Time Limit: 10 Sec  Memory Limit: 162 MB [Submit][Status][Discuss] Description 混乱的奶牛 [Don Piele, 2007] Farmer John的N(4 <= N <= 16)头奶牛中的每一头都有一个唯一的编号S_i (1 <= S

Unlimited Code Works 312

bzoj1231 [Usaco2008 Nov]mixup2 混乱的奶牛——状压DP

题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1231 小型状压DP; f[i][j] 表示状态为 j ,最后一个奶牛是 i 的方案数; 所以下一个只能是和它相差大于 k 而且不在状态中的奶牛。 代码如下: #include<iostream> #include<cstdio> #incl...

aodan5477的博客 194

[BZOJ1231][Usaco2008 Nov]mixup2 混乱的奶牛(状压dp)

虚伪的眼泪会伤害别人,虚伪的笑容会伤害自己。

zyf2000 1340

BZOJ1231: [Usaco2008 Nov]mixup2 混乱的奶牛(状压DP)

Description 混乱的奶牛 [Don Piele, 2007] Farmer John的N(4 <= N <= 16)头奶牛中的每一头都有一个唯一的编号S_i (1 <= S_i <= 25,000). 奶牛为她们的编号感到骄傲, 所以每一头奶牛都把她的编号刻在一个金牌上, 并且把金牌挂在她们宽大的脖子上. 奶牛们对在挤奶的时候被排成一支"混乱"的队伍非常反感. 如...

tomjobs的博客 423

bzoj 1231: [Usaco2008 Nov]mixup2 混乱的奶牛 (状压dp)

Description 混乱的奶牛 [Don Piele, 2007] Farmer John的N(4 &lt;= N &lt;= 16)头奶牛中的每一头都有一个唯一的编号S_i (1 &lt;= S_i &lt;= 25,000). 奶牛为她们的编号感到骄傲, 所以每一头奶牛都把她的编号刻在一个金牌上, 并且把金牌挂在她们宽大的脖子上. 奶牛们对在挤奶的时候被排成一支"混乱"的队伍非常反感. ...

Top_xiao的博客 317

【BZOJ1231】[Usaco2008 Nov]mixup2 混乱的奶牛 状压DP

大家都很强, 可与之共勉 。Description混乱的奶牛 [Don Piele, 2007] Farmer John的N(4 <= N <= 16)头奶牛中的每一头都有一个唯一的编号S_i (1 <= S_i <= 25,000). 奶牛为她们的编号感到骄傲, 所以每一头奶牛都把她的编号刻在一个金牌上, 并且把金牌挂在她们宽大的脖子上. 奶牛们对在挤奶的时候被排成一支”混乱”的队伍非常反感. 如

Lazer2001 576

BZOJ 1231: [Usaco2008 Nov]mixup2 混乱的奶牛 状压dp

1231: [Usaco2008 Nov]mixup2 混乱的奶牛 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 1126  Solved: 654 [Submit][Status][Discuss] Description 混乱的奶牛 [Don Piele, 2007] Farmer John的N(4 <= N <= 16)头奶牛

BlackJack 357

bzoj1231[Usaco2008 Nov]mixup2 混乱的奶牛 状压dp

题目大意:给定一个长度为n的序列,询问任意相差都大于给定k的排列的数量一开始做的时候看错题了,以为只要任意有一个就要计算方案数,设计了一个状态 fi,j,k,lf_{i,j,k,l} i表示当前算了i个,j表示当前压缩的状态,k表示当前结尾,l表示此时为混乱或混乱Orz 正确的只有fi,jf_{i,j}i表示结尾,j表示状态,不需要第几个的原因是枚举的状态是递增的,求计算当前状态是基于已经计算好

折戟沉沙 489

[BZOJ 1231][Usaco2008 Nov]mixup2 混乱的奶牛:状压DP

点击这里查看原题f[i][j]表示状态为i,以奶牛j结尾的情况数/* User:Small Language:C++ Problem No.:1231 */ #include<bits/stdc++.h> #define ll long long #define inf 999999999 using namespace std; const int M=(1<<16)+5; int a[20],n

SmallSXJ的博客 473

bzoj 1231: [Usaco2008 Nov]mixup2 混乱的奶牛(状压DP)

1231: [Usaco2008 Nov]mixup2 混乱的奶牛 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 811  Solved: 459 [Submit][Status][Discuss] Description 混乱的奶牛 [Don Piele, 2007] Farmer John的N(4 <= N <= 16)头奶牛中

clover_hxy的博客 402
上一篇: BZOJ 1230: [Usaco2008 Nov]lites 开关灯 线段树
下一篇: BZOJ 1232: [Usaco2008Nov]安慰奶牛cheer Kruskal最小生成树
just_sort
博客等级 码龄11年 2357粉丝 1667原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值