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[];
int v[];
int a[];
int ans=;
void dfs(int step){
for(int i=;i<=n;i++){
if(!v[i]&&abs(h[i]-a[step-])<=k)
{
v[i]++;
a[step]=h[i];
if(step == n && abs(a[step] - a[]) <= k)
{
ans++;
}
else
dfs(step+);
v[i] --;
}
}
return;
} int main()
{
cin>>n>>k;
for(int i=;i<=n;i++)
{
cin>>h[i];
v[i]=;
}
if(n==)
cout<<;
else{
v[]++;
a[]=h[];
dfs();
cout<<ans;
} return ;
}

身高安排方法(基础dfs)的更多相关文章

  1. C语言入门7-程序设计方法基础-循环结构

    程序设计方法基础-循环结构 循环三要素: 初值   循环判断条件   步长(循环增量) 循环结构在有些书籍上也称为重复结构,  即反复执行某一部分的操作. 循环三要素: 初值   循环判断条件   步 ...

  2. java方法基础

    java方法基础 方法的定义与调用 方法是命名的语句的有序集,是解决一类问题的步骤的有序组合. 方法包含于类或者是对象中,方法在程序中被创建,在其他地方被引用. 组成:方法是由方法头和方法体两部分组成 ...

  3. 【搜索】POJ-3050 基础DFS

    一.题目 Description The cows play the child's game of hopscotch in a non-traditional way. Instead of a ...

  4. bzoj1725: [Usaco2006 Nov]Corn Fields牧场的安排(状压dfs)

    1725: [Usaco2006 Nov]Corn Fields牧场的安排 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1122  Solved: 80 ...

  5. 链式前向星存树图和遍历它的两种方法【dfs、bfs】

    目录 一.链式前向星存图 二.两种遍历方法 一.链式前向星存图:(n个点,n-1条边) 链式前向星把上面的树图存下来,输入: 9 ///代表要存进去n个点 1 2 ///下面是n-1条边,每条边连接两 ...

  6. 算法基础③--DFS解决迷宫问题入门

    迷宫问题 通过深度优先搜索(DFS)方法实现. 迷宫问题一 一天蒜头君掉进了一个迷宫里面,蒜头君想逃出去,可怜的蒜头君连迷宫是否有能逃出去的路都不知道. 看在蒜头君这么可怜的份上,就请聪明的你告诉蒜头 ...

  7. LINQ查询表达式和LAMBDA点标记方法基础

    在上一篇文章中,我们介绍了LINQ的一些基本用法,这一篇我们来看下另一种更简洁更优雅的表达式,Lambda表达式,也可以叫做点标记方法. 相信大家在实际工作中都用到过这两种方式,下面我们还是用实例来看 ...

  8. 题目--oil Deposits(油田) 基础DFS(深度搜索)

    上一次基本了解了下BFS,这次又找了个基本的DFS题目来试试水,DFS举个例子来说就是 一种从树的最左端开始一直搜索到最底端,然后回到原端再搜索另一个位置到最底端,也就是称为深度搜索的DFS--dep ...

  9. 51nod1268(基础dfs)

    解题思路:直接搜索找就行了,搜两边,一个是加入这个数字,一边是不加入这个数字 代码: #include<iostream>#include<algorithm>#define ...

随机推荐

  1. Hive错误:User root is not allowed to impersonate anonymous

    修改hadoop 配置文件 etc/hadoop/core-site.xml,加入如下配置项: <property> <name>hadoop.proxyuser.root.h ...

  2. 回收机制GC

    .NET 之 垃圾回收机制GC 一.GC的必要性 1.应用程序对资源操作,通常简单分为以下几个步骤:为对应的资源分配内存 → 初始化内存 → 使用资源 → 清理资源 → 释放内存. 2.应用程序对资源 ...

  3. (2)Django入门

    web框架:把一个请求拆成几部分,每部分做相同的事 python中常用的框架 1.Django:大而全的框架 2.flask:微框架又叫轻量级的框架 3.Tornado:高性能框架 pycharm创建 ...

  4. ACM-ICPC 2018 徐州赛区网络预赛(9.9)

    #include<bits/stdc++.h> #define int long long using namespace std; ; ; ]; int quick(int a,int ...

  5. Linux下7z工具安装

    sudo apt-get install p7zip p7zip-full p7zip-rar 使用: 使用7z --help查看使用方法. 解压: 7za X test.7z

  6. Python中元组、列表、字典的遍历和相互转化

    一.元组,列表,字典的遍历 1.1 元组的遍历 元组的遍历借助 range() 函数,基本思想是通过元组的长度使用for循环进行遍历,代码如下:     fruits=("apple&quo ...

  7. linux之shell终端使用操作快捷键

    所谓的shell终端就是桌面右键里面的打开终端那个终端 敲命令是一件很有趣的事,可是有时候我们会遇到一些很麻烦的事 例如,命令太长导致敲完后一大串字符可读性低,想把vi filename 快速改为ca ...

  8. 使用btrace需要注意的几个问题

    1. @ProbeClassName String clazz 此处String不能写为java.lang.String 2. location=@Location(Kind.RETURN) publ ...

  9. node api 之:stream - 流

    stream 模块可以通过以下方式使用: const stream = require('stream'); 流可以是可读的.可写的.或者可读可写的. 所有的流都是 EventEmitter 的实例. ...

  10. ASP.NET AJAX入门系列(3):使用ScriptManagerProxy控件

    在ASP.NET AJAX中,由于一个ASPX页面上只能有一个ScriptManager控件,所以在有母版页的情况下,如果需要在Master-Page和Content-Page中需要引入不同的脚本时, ...