【noip模拟赛4】Matrix67的派对
 

描述

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的正整数

输出

输出符合要求的安排总数

输入样例 1

4 10
2
16
6
10

输出样例 1

2

做法:
用dfs试每一条路,记录一个步数step,当step==n,切该点和起点差距小于k时,答案就累计一个。
开3个数组:
1 pre 记录 step-1 时,是哪个点,用来与step时的各个数比较判断能否做一起。
2 flag 在试没一条路时,用flag标记每一条路,防止死循环,这条路探完后,重置为0。
3 high 记录每个人的高。 注意:有特解 当n=1时,ans 应为1。
#include<iostream>
#include<cmath>
#include<stdio.h>
#include<vector>
#include<string.h>
#include<math.h>
#include<algorithm>
using namespace std;
const int maxn=;
int high[maxn],pre[maxn];
int n,k,ans;
bool flag[maxn]; void dfs(int step)
{ for(int i=;i<=n;i++)
{
if(!flag[i]&&abs(high[i]-high[pre[step-]])<=k)
{
flag[i]=;
pre[step]=i;
if(step==n&&abs(high[pre[step]]-high[])<=k)
{
ans++;
}
else
dfs(step+);
flag[i]=;
}
}
} int main(void)
{
// freopen("input.txt","r",stdin);
cin>>n>>k;
for(int i=;i<=n;i++)
{
cin>>high[i];
}
if(n==)
ans=;
else
{
ans=;
flag[]=;
pre[]=;
dfs();
}
cout<<ans<<endl;
return ;
}

【noip模拟赛4】Matrix67的派对 暴力dfs的更多相关文章

  1. NOIP模拟赛20161022

    NOIP模拟赛2016-10-22 题目名 东风谷早苗 西行寺幽幽子 琪露诺 上白泽慧音 源文件 robot.cpp/c/pas spring.cpp/c/pas iceroad.cpp/c/pas ...

  2. NOIP模拟赛 by hzwer

    2015年10月04日NOIP模拟赛 by hzwer    (这是小奇=> 小奇挖矿2(mining) [题目背景] 小奇飞船的钻头开启了无限耐久+精准采集模式!这次它要将原矿运到泛光之源的矿 ...

  3. CH Round #49 - Streaming #4 (NOIP模拟赛Day2)

    A.二叉树的的根 题目:http://www.contesthunter.org/contest/CH%20Round%20%2349%20-%20Streaming%20%234%20(NOIP 模 ...

  4. CH Round #48 - Streaming #3 (NOIP模拟赛Day1)

    A.数三角形 题目:http://www.contesthunter.org/contest/CH%20Round%20%2348%20-%20Streaming%20%233%20(NOIP模拟赛D ...

  5. CH Round #54 - Streaming #5 (NOIP模拟赛Day1)

    A.珠 题目:http://ch.ezoj.tk/contest/CH%20Round%20%2354%20-%20Streaming%20%235%20(NOIP模拟赛Day1)/珠 题解:sb题, ...

  6. 10.16 NOIP模拟赛

    目录 2018.10.16 NOIP模拟赛 A 购物shop B 期望exp(DP 期望 按位计算) C 魔法迷宫maze(状压 暴力) 考试代码 C 2018.10.16 NOIP模拟赛 时间:2h ...

  7. NOIP模拟赛-2018.11.7

    NOIP模拟赛 如果用命令行编译程序可以发现没加头文件之类的错误. 如果用命令行编译程序可以发现没加头文件之类的错误. 如果用命令行编译程序可以发现没加头文件之类的错误. 编译之前另存一份,听说如果敲 ...

  8. NOIP模拟赛-2018.11.5

    NOIP模拟赛 好像最近每天都会有模拟赛了.今天从高二逃考试跑到高一机房,然而高一也要考试,这回好像没有拒绝的理由了. 今天的模拟赛好像很有技术含量的感觉. T1:xgy断句. 好诡异的题目,首先给出 ...

  9. NOI.AC NOIP模拟赛 第三场 补记

    NOI.AC NOIP模拟赛 第三场 补记 列队 题目大意: 给定一个\(n\times m(n,m\le1000)\)的矩阵,每个格子上有一个数\(w_{i,j}\).保证\(w_{i,j}\)互不 ...

随机推荐

  1. 性能测试过程中oracle数据库报ORA-27301 ORA-27302错

    最近在性能测试过程中发现,发现虚拟用户数上不去,加载到一定的数量应用端就报错,提示连接数据库出错.在测试的过程中查看web容器的线程池 数据源的连接池 都还有空闲,同时查看oracle的v$sessi ...

  2. Vue 编程式导航(通过js跳转页面)以及路由hash模式和history模式

    第一种方法: this.$router.push({path:'shopcontent?aid=3'}   第二种方法   this.$router.push({name:'news'}} 通过在ma ...

  3. springboot学习五:IDEA外部tomcat发布

    pom.xml配置 屏蔽自带tomcat <dependency> <groupId>org.springframework.boot</groupId> < ...

  4. java实现字符串和LIST,MAP转换

    需要下载第三方的jar :net.sf.json import java.io.BufferedReader; import java.io.InputStream; import java.io.I ...

  5. Python简单语音识别并响应

    起因是一个工作中喜欢说口头禅的同事,昨天老说"你看看你看看 操不操心".说了几次之后我就在他说完"你看看"后面续上,"操不操心".往复多次后 ...

  6. mysql组复制安装

    参考文档 https://blog.csdn.net/li123128/article/details/80744568 https://www.cnblogs.com/ctulzq/p/863109 ...

  7. 9Linux_LVM_iptables

    LVM 创建物理卷 卷组 逻辑卷 格式化 挂载 扩容 缩小 快照 删除逻辑卷

  8. NodeJs 使用 multer 实现文件上传

    Multer 是一个 node.js 中间件,用于处理 multipart/form-data 类型的表单数据,它主要用于上传文件 注意: Multer 不会处理任何非 multipart/form- ...

  9. pyqt5-----postgresql数据库使用

    上一章解决了无法加载postgresql数据库的问题 1.打开数据from PyQt5 import QtWidgets,QtSql,QtCoreimport sys app =QtCore.QCor ...

  10. Dnsmasq 配置PXE批量安装系统

    以下测试都是基于centos 7下的环境 需要安装的软件为 nginx 用来下载ks.cfg和系统镜像文件用的,也可以用ftp服务器来代替 dnsmasq 提供dhcp服务和tftp服务,也可以单独去 ...