nyoj19(擅长排列的小明)
2014-07-04 18:11
211 查看
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=19题目解析:先生成排列数,然后进行深搜。代码如下:
01.
#include<stdio.h>
02.
//深度优先搜索
03.
int
vis[11]={0};
//存储走过标记
04.
int
b[11];
//存储走过的数字
05.
int
n,m;
//全局数字
06.
07.
void
dfs(
int
c)
//c用来记录用来排序的个数
08.
{
09.
if
(c == m)
//当个数满足选择的要求个数时就输出
10.
{
11.
for
(
int
i=0;i<m;i++)
12.
printf
(
"%d"
,b[i]);
13.
printf
(
"\n"
);
14.
}
15.
else
16.
{
17.
for
(
int
i=1;i<=n;i++)
//从第一个开始找..
18.
{
19.
if
(!vis[i])
//找到没有用过的
20.
{
21.
vis[i]=!vis[i];
//标记为用过的
22.
b[c]=i;
//并且把这个数存入
23.
dfs(c+1);
//再从这里开始进入下一个数字的搜索
24.
vis[i]=!vis[i];
//一轮搜索完毕把标记用过的标记回没用过的,再返回for从下一个i开始找
25.
}
26.
}
27.
}
28.
}
29.
30.
int
main()
31.
{
32.
int
N;
33.
scanf
(
"%d"
,&N);
34.
while
(N--)
35.
{
36.
scanf
(
"%d%d"
,&n,&m);
37.
dfs(0);
38.
}
39.
return
0;
40.
}
相关文章推荐
- nyoj 19 擅长排列的小明<按序排列>
- nyoj 擅长排列的小明 19 (dfs)
- NYOJ 19 擅长排列的小明(排列 dfs /STL)
- nyoj 19【擅长排列的小明】
- NYOJ-19 擅长排列的小明 -----回溯
- NYOJ19,擅长排列的小明,StringBuffer.deleteCharAt()
- nyoj-19 擅长排列的小明
- nyoj--19 擅长排列的小明(dfs)
- nyoj 19 擅长排列的小明 【DFS】
- nyoj 19 擅长排列的小明
- NYOJ 19(擅长排列的小明)
- NYOJ 19 擅长排列的小明 (排列组合)
- nyoj-19-擅长排列的小明
- NYOJ19擅长排列的小明
- nyoj_19_擅长排列的小明_201403011600
- NYOJ366 D的小L 和 NYOJO32 组合数 和 NYOJ19 擅长排列的小明 和 NYOJ488 素数环 【递归】
- NYOJ - 19 - 擅长排列的小明(STL - set +全排列)
- NYOJ 19 擅长排列的小明
- NYOJ 19 擅长排列的小明
- NYOJ 19 擅长排列的小明