当前位置: 首页 > 编程日记 > 正文

【ACM】DFS 全排列 回溯

深入体会一下DFS,回溯

在一些OJ上endl和“\n”还是有区别的!!!

题目链接:http://codevs.cn/problem/1294/

方法一:

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int maxn = 1000;
int vis[maxn],a[maxn],n;
int dfs(int step)
{int i;if(step==n+1){for(i=1;i<=n;i++)printf("%d ",a[i]);printf("\n");}else{for(i=1;i<=n;i++){if(vis[i]==0){vis[i]=1;a[step]=i;dfs(step+1);vis[i]=0;}}}
}
int main ()
{while(scanf("%d",&n)==1 && n){dfs(1);}return 0;
}

方法二:

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int maxn = 1000;
int vis[maxn],a[maxn],n;
void dfs(int x,int index)
{int i;a[index]=x;if(index==n-1){for(i=0;i<n;i++){printf("%d ",a[i]);}printf("\n");return ;}else{for(i=1;i<=n;i++){if(vis[i]==0){vis[i]=1;dfs(i,index+1);vis[i]=0;}}} 
}
int main ()
{int i;while(scanf("%d",&n)==1 && n){memset(vis,0,sizeof(vis));for(i=1;i<=n;i++){vis[i]=1;dfs(i,0);vis[i]=0;}}return 0;
}

相关文章:

(轉貼) 友達光電第五屆【A+種子暑期實習計畫】開始辦理報名 (News)

友達光電第五屆【A種子暑期實習計畫】開始辦理報名 友達光電以絕佳的團隊執行力&#xff0c;帶領台灣光電產業進入世界級的領域! 還在就學的你/妳&#xff0c;想成為世界級光電產業的A種子嗎? 把握最後的暑假加入友達的A種子實習團隊吧!! 【2008 A種子募集計畫】 實習期間&am…

binutils工具集用法

addr2line用于得到程序指令地址所对应的函数&#xff0c;以及函数所在的源文件名和行号。 在不少嵌入式开发环境中&#xff0c;编译器的名称往往不是gcc&#xff0c;而是想arm-rtems-gcc这样的&#xff0c;对于这种命名形式的编译器&#xff0c;读者通常可以找到arm-rtems-add…

【ACM】CODE[VS] 1215 (DFS)

题目描述 Description 在N*N的迷宫内&#xff0c;“#”为墙&#xff0c;“.”为路&#xff0c;“s”为起点&#xff0c;“e”为终点&#xff0c;一共4个方向可以走。从左上角&#xff08;(0,0)“s”&#xff09;位置处走到右下角&#xff08;(n-1,n-1)“e”&#xff09;位置处…

#大学#SQL基础学习笔记(02)

*数据分组select FAge,count(*) from TableName group by FAge (根据年龄进行分组)一般和聚合函数一起使用 *Having语句select FAge,count(*) from TableName group by FAge having count(*)>1 *聚合函数不能出现在where语句中 *having是对分组后的信息进行过滤&#xff0c;…

socket connect阻塞和非阻塞处理

建立socket后默认connect()函数为阻塞连接状态&#xff0c;在大多数实现中&#xff0c;connect的超时时间在75s至几分钟之间&#xff0c;想要缩短超时时间&#xff0c;可解决问题的两种方法&#xff1a;方法一、将socket句柄设置为非阻塞状态&#xff0c;方法二、采用信号处理函…

【ACM】CODE[VS] 2806(DFS)

感觉有点入了DFS的门槛&#xff0c;距离完全掌握还差得远呢 AC代码&#xff1a;运行时间为7ms #include <iostream> #include <cstdio> #include <cstring> using namespace std; const int maxn 26; int vis[maxn][maxn],col,line,flag,count; char map[…

scala学习手记34 - trait方法的延迟绑定

trait的方法的延迟绑定就是先混入的trait的方法会后调用。这一点从上一节的实例中也可以看出来。 下面再来看一个类似的例子&#xff1a; abstract class Writer {def write(message: String): String }trait UpperWriter extends Writer {abstract override def write(message…

(原創) Altera Technology Roadshow 2011 Taipei (SOC) (Quartus II) (Nios II) (Qsys)

Abstract這是我第一次參加Altera一年一度的Technology Roadshow。 Introduction 今年的Altera Technology Roadshow是在台北喜來登大飯店舉行。 位置在喜來登飯店的B2。 講師的講台。 當天的會場布置。 當天的演講內容&#xff0c;主要是台灣Altera兩家代理商Galaxy與Arrow的FA…

git-flow工作流说明

本文以一虚拟项目为例&#xff0c;描述了Git Flow在项目中的应用&#xff1b;还以此为主线&#xff0c;以表格形式给出了速查手册&#xff1b;最后&#xff0c;结合这两点介绍了一个基于Git Flow的项目实例。 希望这篇文章能够帮助Git初学者尽快上手。 1.1 什么是Git Fl…

2015湖南省省赛 阶乘除法 暴力

阶乘除法Time Limit:5000MS Memory Limit:65535KB 64bit IO Format: NBUT 1643Description 输入两个正整数 n, m,输出 n!/m!,其中阶乘定义为 n! 1*2*3*...*n (n>1)。 比如,若 n6, m3,则 n!/m!6!/3!720/6120。 是不是很简单?现在让我们把问题反过来:输入 kn!/m!,找到…

【ACM】POJ 1664

现在还不能理解为什么 至少有一个盘子用f(m,n-1)表示就可以了 AC: #include <iostream> #include <cstdio> using namespace std; int f(int m,int n) {if(m1 || n1 || m0) return 1;else if(m<n) return f(m,m);else{return f(m-n,n)f(m,n-1);} } int mai…

高效程序员的 7 个共同特征

导读&#xff1a;要想成为一个伟大的程序员&#xff0c;需要的可不仅仅是能够编写出可以正常运行的代码。Justin James给出了能够成为业内顶尖高手的程序员应该具有的几个典型特质。 要想成为高效的程序员&#xff0c;你需要具备一定的综合素质才能够让你用你所掌握的技能、经验…

Openstack组件实现原理 — Keystone认证功能

前言Keystone实现始终围绕着Keystone所实现的功能来展开&#xff0c;所以在理解其实现之前&#xff0c;建议大家尝试通过安装Keystone这一个过程来感受Keystone在Openstack架构中所充当的角色。下面给出了Keystone-M的安装过程。Keystone安装列表Openstack组件部署 — Overview…

unity test相关

http://www.throwtheswitch.org/unity

【小贴士】在线画流程图工具

https://c.runoob.com/more/shapefly-diagram/

Unity3D笔记 GUI 一

要实现的功能&#xff1a; 1、个性化Windows界面  2、减少个性化的背景图片尺寸  3、个性化样式ExitButton和TabButton  4、实现三个选项卡窗口 一、个性化Windows界面 1.1、创建一个空的GameObject、在Project中新建GUI Skin 用于绘制Windows图片 1.2 GUI Skin设置 1.3效…

gdb相关(栈和寄存器)

GDB的常用调试命令大家可以查阅gdb手册就可以快速的上手了&#xff0c;在这儿就不给大家分享了&#xff0c;需要的可以到GDB的官网去下载手册。这里重点分享下GDB调试中的一些寄存器和栈的相关知识用于解决下列gdb调试时的问题&#xff1a; 优化的代码在printf或其它glibc函数…

bzoj1688[Usaco2005 Open]Disease Manangement 疾病管理*

bzoj1688[Usaco2005 Open]Disease Manangement 疾病管理 题意&#xff1a; n头牛&#xff0c;d种疾病&#xff0c;每头牛都患一些疾病&#xff0c;现在要求选出最多的牛&#xff0c;使这些牛患病的种类数不超过k。n≤1000&#xff0c;d≤15 题解&#xff1a; 状压dp。f[i][S]表…

【数据结构】二叉树的应用。

1、分别采用递归和非递归的方式编写两个函数&#xff0c;求一棵给定二叉树中叶子节点的个数 2、返回一棵给定二叉树在中序遍历下的最后一个结点 3、假设二叉树采用链式方式存储&#xff0c;root为其根节点&#xff0c;p和q分别指向二叉树中任意两个结点&#xff0c;编写一个函…

我为我Windows Home Server 预热

这两天在下载Windows Home Server,所以找一些资料来看. 微软宣布Windows Home Server&#xff08;WHS&#xff09;正式推出&#xff0c;WHS是一个帮助家庭保护&#xff0c;连接并共享他们的数字媒体与文档的新解决方案。用户可以从各大在线商店进行预订&#xff0c;之后会在本月…

c 宏定义用法#define

转自&#xff1a;https://blog.csdn.net/boring_wednesday/article/details/78756696 宏定义 语法 #define name Stuff #define PI 3.14 //定义一个M&#xff0c;值为3.14 #define DO_FOREVER for(;;) //定义一个死循环 #define REG register //定义REG来作为register的别…

Linux学习笔记—— 权限及权限管理

权限及权限管理权限管理&#xff1a;r&#xff1a;w&#xff1a;x&#xff1a;三类用户&#xff1a;u&#xff1a;属主g&#xff1a;属组o&#xff1a;其他用户chown&#xff1a;改变文件属主&#xff08;只有管理员可以使用此命令&#xff09;# chown USERNAME file,...-R&…

【ACM】签到题

#include <stdio.h> int main () {int T,a,b,c,x,ji,ya,e;scanf("%d",&T);while(T--){scanf("%d%d%d%d",&a,&b,&c,&x);ya(a*x)/(c-b);e(a*b*x)/(a*c-a*b);jiex;printf("%d %d %d\n",ji,ya,e);}return 0; }

图解eclipse+myeclipse完全绿色版制作过程

现在在Java开发中&#xff0c;使用的开发工具大部分都是Eclipse&#xff0c;并且和Eclipse关系紧密的要数MyEclipse了&#xff0c;但是 MyEclipse是一个EXE可执行程序&#xff0c;对于没有安装Eclipse与MyEclilpse的电脑来说&#xff0c;首先得先解压Eclipse&#xff0c;然后再…

linux proc/xx/maps文件分析

转载&#xff1a;https://blog.csdn.net/lijzheng/article/details/23618365 Proc/pid/maps显示进程映射了的内存区域和访问权限。对应内核中的操作集为proc_pid_maps_op&#xff0c;具体的导出函数为show_map。内核中进程的一段地址空间用一个vm_area_struct结构体表示&#…

【ACM】熊孩子的乐趣

题目链接&#xff1a;http://acm.nuc.edu.cn/OJ/contest/show/43/1000 【问题描述】 Alice跟Bob是学校里出了名的两个熊孩子&#xff0c;会在任何事情上争个高低&#xff0c;彼此都不服输。幼儿园的老师每次分糖果的时候看到这两个熊孩子也很头疼&#xff0c;两个人都想占便宜…

mysql insertOrUpdate 方法

为什么80%的码农都做不了架构师&#xff1f;>>> 自己对这个方法又有点小心得 分享下 https://my.oschina.net/hccake/blog/777225 mysql "ON DUPLICATE KEY UPDATE" 语法 如果在INSERT语句末尾指定了ON DUPLICATE KEY UPDATE&#xff0c;并且插入行后会导…

软件破解工具整理收集

1.调试工具softice 2.调试工具Trw2000 3.反汇编工具Wdasm8.93 4.Hiew 5.Visual Basic程序调试工具Smartcheck 6.十六进制编辑器&#xff08;如&#xff1a;Ultraedit、WinHex、Hex Workshop 等&#xff09; 7.注册表监视工具RegShot、regmon或RegSnap 8.侦测文件类型工具…

Linux 下 UltraEdit 版本: 16.1.0.18 破解 30 天试用限制

rm -rfd ~/.idm/uex rm -rf ~/.idm/*.spl rm -rf /tmp/*.spl

【ACM】杭电OJ 2149

Public Sale 【问题描述】 虽然不想&#xff0c;但是现实总归是现实&#xff0c;Lele始终没有逃过退学的命运&#xff0c;因为他没有拿到奖学金。现在等待他的&#xff0c;就是像FarmJohn一样的农田生涯。 要种田得有田才行&#xff0c;Lele听说街上正在举行一场别开生面的拍…