[USACO08NOV]奶牛混合起来Mixed Up Cows]


[USACO08NOV]奶牛混合起来Mixed Up Cows

题目描述

约翰家有N头奶牛,第i头奶牛的编号是Si,每头奶牛的编号都是唯一的。这些奶牛最近 在闹脾气,为表达不满的情绪,她们在挤奶的时候一定要排成混乱的队伍。在一只混乱的队 伍中,相邻奶牛的编号之差均超过K。比如当K = 1时,1, 3, 5, 2, 6, 4就是一支混乱的队伍, 而1, 3, 6, 5, 2, 4不是,因为6和5只差1。请数一数,有多少种队形是混乱的呢?

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#define ll long long
using namespace std;
const int N=16;
int n,K,a[N];
ll f[100010][N],ans;
int main()
{
    cin>>n>>K;
    for(int i=0;i<n;i++)
        cin>>a[i];
    for(int i=0;i<=n-1;i++)
        f[1<<i][i]=1;
    for(int i=1;i<(1<<n);++i)
        for(int j=0;j<n;++j)
            if(f[i][j])
                for(int k=0;k<n;++k)
                    if(!(i&(1<<k))&&abs(a[j]-a[k])>K)
                        f[i|(1<<k)][k]+=f[i][j];
    for(int i=0;i<n;++i)
        ans+=f[(1<<n)-1][i];
    cout<<ans<<"\n";
    return 0;
}
优质内容筛选与推荐>>
1、python第三方库------jieba库(中文分词)
2、如何实现一个malloc(转)
3、word中特殊符号的替换
4、电子商务网站网上支付原理简析
5、驱动思想之机制和策略


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号