NYOJ 19 擅长排列的小名 next_permutation()的用法
生活随笔
收集整理的這篇文章主要介紹了
NYOJ 19 擅长排列的小名 next_permutation()的用法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
主要就是next_permutation()這個函數的使用,沒啥技術含量。
本題代碼 #include<iostream> #include<algorithm> #include<string> using namespace std;int main() {int t, i;cin>>t;while(t--){int x, y;string s1, s2;cin>>x>>y;for(i = 1; i <= x;i++){s1 += '0' + i;}//這里已經是升序了,所以不用再次排序。s2 = s1.substr(0,y);//復制子串,即復制s1的前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;}
next_permutation()這使用時一定要保證參數是升序的,prev_permutation()與之相反否則生成的排列不全。具體原因看博客http://leonard1853.iteye.com/blog/1450085
本題代碼 #include<iostream> #include<algorithm> #include<string> using namespace std;int main() {int t, i;cin>>t;while(t--){int x, y;string s1, s2;cin>>x>>y;for(i = 1; i <= x;i++){s1 += '0' + i;}//這里已經是升序了,所以不用再次排序。s2 = s1.substr(0,y);//復制子串,即復制s1的前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 擅长排列的小名 next_permutation()的用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python实现文档图像倾斜矫正,实现类
- 下一篇: 基于STM32的单片2KW+全数控移相全