zoukankan      html  css  js  c++  java
  • 身高安排方法(基础dfs)

     P1085

    时间限制: 0 Sec  内存限制: 128 MB
    提交: 64  解决: 44
    [提交][状态][讨论版][命题人:外部导入]

    题目描述

    Matrix67发现身高接近的人似乎更合得来。Matrix67举办的派对共有N(1< =N< =10)个人参加,Matrix67需要把他们安排在圆桌上。Matrix67的安排原则是,圆桌上任意两个相邻人的身高之差不能超过K。请告诉Matrix67他共有多少种安排方法。

    输入

            第一行输入两个用空格隔开的数N和K,其中1< =N< =10,1< =K< =1  000  000。         第二行到第N+1行每行输入一个人的身高值。所有人的身高都是不超过1  000  000的正整数

    输出

            输出符合要求的安排总数

    样例输入

    4 10
    2
    16
    6
    10
    

    样例输出

    2
    

    提示

    #include<iostream>
    #include<cmath>
    #include<cstring>
    #include<string>
    using namespace std;
    int n;
    int k;
    int h[15];
    int v[15];
    int a[15];
    int ans=0;
    void dfs(int step){
        for(int i=2;i<=n;i++){
            if(!v[i]&&abs(h[i]-a[step-1])<=k)
            {
                v[i]++;
                a[step]=h[i];
                if(step == n && abs(a[step] - a[1]) <= k)
                {
                        ans++;
                }
                    else
                    dfs(step+1);
                    v[i] --;
                }
            }
        return;
    }
     
     
    int main()
    {
        cin>>n>>k;
        for(int i=1;i<=n;i++)
        {
            cin>>h[i];
            v[i]=0;
        }
        if(n==1)
            cout<<1;
        else{
            v[1]++;
            a[1]=h[1];
            dfs(2);
            cout<<ans;
        }
             
     
        return 0;
    }
  • 相关阅读:
    应用层协议及ip地址划分
    请求与响应编码及jsp基本原理
    springboot注解
    springboot 快速入门
    Http协议简单解析及web请求过程
    Tomcat原理详解及请求过程
    mysql数据库乱码的问题解决
    AOP的实现原理
    Springl利用Aspectj的扩展实现Aop
    JDK动态代理实现原理
  • 原文地址:https://www.cnblogs.com/caiyishuai/p/10455911.html
Copyright © 2011-2022 走看看