nyoj 19 擅长排列的小明
2016-11-20 10:32
232 查看
http://acm.nyist.net/JudgeOnline/problem.php?pid=19
数字的排列问题 字典序全部输出。
1.substr函数的作用是截取字符substr(a[2],a+n)截取从数组中第二个开始的向后n个的一段。如果是string s1定义的 可以使用substr(s1.begin(),s1.end());
2.next_permutation(s1.begin(),s1.end())作用是从第一个开始,一直向下枚举,例如:123 132 213 231 312 321 直到没有下一个,返回FALSE;
3.string 定义的S1,可以进行如下的操作。相当于直接在后面添加数字字符,不用for循环,比较方便。
for(i=1;i<=x;i++)
{
s1+=’0’+i;
}
数字的排列问题 字典序全部输出。
1.substr函数的作用是截取字符substr(a[2],a+n)截取从数组中第二个开始的向后n个的一段。如果是string s1定义的 可以使用substr(s1.begin(),s1.end());
2.next_permutation(s1.begin(),s1.end())作用是从第一个开始,一直向下枚举,例如:123 132 213 231 312 321 直到没有下一个,返回FALSE;
3.string 定义的S1,可以进行如下的操作。相当于直接在后面添加数字字符,不用for循环,比较方便。
for(i=1;i<=x;i++)
{
s1+=’0’+i;
}
#include<iostream> #include<algorithm> #include<stdio.h> #include<string> using namespace std; int main() { int i,t; cin>>t; while(t--) { int x,y; string s1,s2; cin>>x>>y; for(i=1;i<=x;i++) { s1+='0'+i; } //cout<<s1<<endl; s2=s1.substr(0,y); cout<<s2<<endl; while(next_permutation(s1.begin(),s1.end())) { if(s2!=s1.substr(0,y)) { s2=s1.substr(0,y); cout<<s2<<endl; } } } return 0; }
相关文章推荐
- NYOJ 19 擅长排列的小明 (排列组合)
- NYOJ19擅长排列的小明
- nyoj_19_擅长排列的小明_201403011600
- NYOJ 19(擅长排列的小明)
- NYOJ366 D的小L 和 NYOJO32 组合数 和 NYOJ19 擅长排列的小明 和 NYOJ488 素数环 【递归】
- NYOJ - 19 - 擅长排列的小明(STL - set +全排列)
- nyoj-19-擅长排列的小明
- NYOJ 19 擅长排列的小明(全排列<next_permutation>)
- NYOJ 19 擅长排列的小明
- NYOJ 19 擅长排列的小明
- NYOJ 19 擅长排列的小明
- NYOJ-19-擅长排列的小明(DFS 全排列)
- nyoj 19 擅长排列的小明
- NYOJ 题目19 擅长排列的小明(dfs)
- NYOJ 19 擅长排列的小明
- nyoj 19 擅长排列的小明
- NYOJ-19 擅长排列的小明
- nyoj-19 擅长排列的小明 (dfs)
- NYOJ 19 擅长排列的小明
- NYOJ 19--擅长排列的小明【DFS】