(STL) ACM_擅长排列的小明.(补)
2014-04-14 09:04
197 查看
描述 小明十分聪明,而且十分擅长排列计算。比如给小明一个数字5,他能立刻给出1-5按字典序的全排列,如果你想为难他,在这5个数字中选出几个数字让他继续全排列,那么你就错了,他同样的很擅长。现在需要你写一个程序来验证擅长排列的小明到底对不对。
输入第一行输入整数N(1<N<10)表示多少组测试数据,
每组测试数据第一行两个整数 n m (1<n<9,0<m<=n)输出在1-n中选取m个字符进行全排列,按字典序全部输出,每种排列占一行,每组数据间不需分界。
(题目为ACM题目)
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int main(void)
{
int N,n,m; //定义题目要求的三个变量 N,n,m
string str,str1,temp_str;//定义 用来保存字符串的变量。
cin>>N;
while( (N--)> 0) //控制循环次数
{
str =""; //重置str
cin>>n>>m;
for(int i =1 ; i <=n ; i++)
str += char('0'+i); //将1-n数字保存到str中
str1.assign(str,0,m); //从str中下标为0开始,取出m个,并保存到str1中。
cout<<str1<<endl;
while(next_permutation(str.begin(),str.end())) //使用C++算法中的next_permutation函数对str进行全排列
{
temp_str.assign(str,0,m); // 取出子串保存到temp_str中
if(str1!=temp_str) //判断当前子串是否刚刚出现过,如果出现则跳过。
{
str1 = temp_str;
cout<<str1<<endl;
}
}
}
return 0;
}
输入第一行输入整数N(1<N<10)表示多少组测试数据,
每组测试数据第一行两个整数 n m (1<n<9,0<m<=n)输出在1-n中选取m个字符进行全排列,按字典序全部输出,每种排列占一行,每组数据间不需分界。
(题目为ACM题目)
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int main(void)
{
int N,n,m; //定义题目要求的三个变量 N,n,m
string str,str1,temp_str;//定义 用来保存字符串的变量。
cin>>N;
while( (N--)> 0) //控制循环次数
{
str =""; //重置str
cin>>n>>m;
for(int i =1 ; i <=n ; i++)
str += char('0'+i); //将1-n数字保存到str中
str1.assign(str,0,m); //从str中下标为0开始,取出m个,并保存到str1中。
cout<<str1<<endl;
while(next_permutation(str.begin(),str.end())) //使用C++算法中的next_permutation函数对str进行全排列
{
temp_str.assign(str,0,m); // 取出子串保存到temp_str中
if(str1!=temp_str) //判断当前子串是否刚刚出现过,如果出现则跳过。
{
str1 = temp_str;
cout<<str1<<endl;
}
}
}
return 0;
}
相关文章推荐
- nyoj19擅长排列的小明(STL)&&(DFS)
- 练习场acm 题目19 擅长排列的小明
- acm每日一练之擅长排列的小明
- 擅长排列的小明 string(stl)的应用 + 排列
- NYOJ - 19 - 擅长排列的小明(STL - set +全排列)
- ACM 19 擅长排列的小明 java
- nyoj19擅长排列的小明(DFS或STL)
- NY19 擅长排列的小明 【STL】
- 擅长排列的小明STL
- ACM 擅长排列的小明
- 擅长排列的小明 DFS()和 STL两种方法
- 擅长排列的小明 STL
- ACM 擅长排列的小明
- [南阳]-19 擅长排列的小明 [STL/DFS]
- NYOJ 19 擅长排列的小明 (STL之next_permutation()的使用)
- NYOJ 19 擅长排列的小明(全排列<next_permutation>)
- 擅长排列的小明II 南工469
- nyoj 19擅长排列的小明 (DFS)
- 擅长排列的小明
- 擅长排列的小明