奇偶交错排列(DFS)
2024-08-26 06:19:51
Description
一个1-n1−n的排列满足所有相邻数字奇偶性不同,那么称该排列为奇偶交错排列。
按字典序输出1-n1−n的所有奇偶交错排列。
Input
输入一个整数n( 2 \le n \le 11)n(2≤n≤11)
Output
输出若干行,每行一个排列。相邻数字之间以一个空格分隔,行末无空格。
请严格按照输出格式,输出不规范将直接判成Wrong answer
Sample Input 1
4
Sample Output 1
1 2 3 4
1 4 3 2
2 1 4 3
2 3 4 1
3 2 1 4
3 4 1 2
4 1 2 3
4 3 2 1
代码:
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
using namespace std;
int n;
int a[15];
int vis[15];
void dfs(int x,int dig)
{
a[dig]=x;
if(dig==n-1)
{
for(int t=0;t<n;t++)
{
if(t!=0)
printf(" %d",a[t]);
if(t==0)
printf("%d",a[t]);
}
cout<<endl;
return ;
}
if(x%2==1)
{
for(int t=1;t<=n;t++)
{
if(t%2==0&&vis[t]==0)
{
vis[t]=1;
dfs(t,dig+1);
vis[t]=0;
}
}
}
if(x%2==0)
{
for(int t=1;t<=n;t++)
{
if(t%2==1&&vis[t]==0)
{
vis[t]=1;
dfs(t,dig+1);
vis[t]=0;
}
}
}
}
int main()
{
cin>>n;
for(int t=1;t<=n;t++)
{
vis[t]=1;
dfs(t,0);
vis[t]=0;
}
}
最新文章
- [linux]如何为Virtualbox虚拟硬盘扩容(转载)
- Frost R&;D
- java提高篇-----详解java的四舍五入与保留位
- Mvc controller单元测试 Mock Url对象
- C/C++中字符串的输入问题
- CentOS配置日志集中管理
- 算子:sample(false, 0.1)抽样数据
- RVM 安装 Ruby
- 微信小程序接入,https服务器搭建和调试
- SpringMVC把后台文件打印到前台
- python(三)@staticmethod和@classmethod使用和区别
- 【python39--面向对象组合】
- js 高效拼接字符串
- springmvc+mybatis 处理图片(一):上传图片
- CF961E Tufurama 主席树
- Codeforces 741B Arpa&#39;s weak amphitheater and Mehrdad&#39;s valuable Hoses
- poj2993
- 安装MySQL的详细步骤
- leetcode题解:Construct Binary Tree from Preorder and Inorder Traversal (根据前序和中序遍历构造二叉树)
- django1.8.3搭建博客——1
热门文章
- 基于:Hadoop 2.6.0-cdh5.4.0 hive1.1.0 HBase 1.0.0-cdh5.4.0 关键配置文件
- ubuntu 12.04 下 eclipse关联 source code
- 关于fragment生命周期的两张图片
- 框架之 hibernate之二
- GUI编程01
- mac 彻底卸载Paragon NTFS
- 使用R语言绘制图表
- EZOJ #81
- C++的运算符重载 (转)
- HTML 4.0 触发事件