擅长排列的小明 南工19
2013-04-17 11:32
232 查看
题目链接:here~~
#include <iostream>
using namespace std;
int n,m, a[10];
bool bz[10];//标记数字是否已经被用过
void DFS(int k)
{
if (k==n)//搜出来的长度等于要求的长度,输出该序列,由于是从小到大搜索的所以输出的时候也是从小到大的
{
for (int i=0; i<n; i++)
cout<<a[i];
cout<<endl;
}
else//不等于要求的长度,继续添加数
for (int i=1; i<=m; i++)
if ( !bz[i] )
{
a[k]=i;//将搜索到的数存起来
bz[i]=true;//标记为已访问
DFS(k+1);//搜索下一个数
bz[i]=false;//上一个序列搜索完之后,重新标记为未访问
}
}
int main()
{
int N;
cin>>N;
while(N--)
{
cin>>m>>n;
DFS(0);//从第一位开始搜索
}
return 0;
}
#include <iostream>
using namespace std;
int n,m, a[10];
bool bz[10];//标记数字是否已经被用过
void DFS(int k)
{
if (k==n)//搜出来的长度等于要求的长度,输出该序列,由于是从小到大搜索的所以输出的时候也是从小到大的
{
for (int i=0; i<n; i++)
cout<<a[i];
cout<<endl;
}
else//不等于要求的长度,继续添加数
for (int i=1; i<=m; i++)
if ( !bz[i] )
{
a[k]=i;//将搜索到的数存起来
bz[i]=true;//标记为已访问
DFS(k+1);//搜索下一个数
bz[i]=false;//上一个序列搜索完之后,重新标记为未访问
}
}
int main()
{
int N;
cin>>N;
while(N--)
{
cin>>m>>n;
DFS(0);//从第一位开始搜索
}
return 0;
}
相关文章推荐
- NYOJ 19 擅长排列的小明 (排列组合)
- NYOJ 19 擅长排列的小明
- NYOJ---19擅长排列的小明
- nyoj19 擅长排列的小明
- NYOJ-19 擅长排列的小明
- 擅长排列的小明(nyoj19)
- NYOJ 题目19 擅长排列的小明(dfs)
- nyoj19 擅长排列的小明
- NYOJ 19擅长排列的小明
- NYOJ-19-擅长排列的小明(DFS 全排列)
- NYOJ - 19 - 擅长排列的小明(STL - set +全排列)
- NYOJ:19-擅长排列的小明
- nyoj 19 擅长排列的小明<按序排列>
- NYOJ 19(擅长排列的小明)
- nyoj 19 擅长排列的小明
- [南阳]-19 擅长排列的小明 [STL/DFS]
- NYOJ 19 擅长排列的小明
- NYOJ 19 擅长排列的小明
- nyoj 19 擅长排列的小明(深搜,next_permutation)
- NYOJ19 擅长排列的小明 【深搜】