nyoj19 全排列
生活随笔
收集整理的這篇文章主要介紹了
nyoj19 全排列
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
http://acm.nyist.net/JudgeOnline/status.php?pid=19
1 #include<stdio.h> 2 #include<stdlib.h> 3 int n,a[10]; 4 bool vis[10];//標示數字是否被用過 5 void f(int k,int m)//k用來給a中第k個元素賦值,m表示還需要尋找的數字個數 6 { 7 for(int i=1;i<=n;++i) 8 { 9 if(!vis[i]) 10 a[k]=i; 11 else 12 continue;//用過的 話找下個數字 13 vis[i]=1;//標志為1,下層遞歸不再使用 14 if(m>1)//m>1繼續尋找 15 f(k+1,m-1); 16 else 17 { 18 for(int j=1;j<=a[0];++j)//否則尋找完畢,輸出 19 printf("%d",a[j]); 20 printf("\n"); 21 } 22 vis[i]=0;//這點很重要,因為后面的循環還需要再用,否則就只輸出一個遞增的序列就完了,為此我貢獻了好幾個TE,納悶的是為什么不是WA呢? 23 } //剛開始在這加了一個memset(),結果一直不對,因為這樣后面會出現重復的數字,所以不行 24 } 25 int main() 26 { 27 int N; 28 scanf("%d",&N); 29 while(N--) 30 { 31 scanf("%d%d",&n,&a[0]);//n表示數字界限,用全局變量a[0]存放待輸出的數字個數 32 f(1,a[0]); 33 } 34 //system("pause"); 35 return 0; 36 }View Code
?
轉載于:https://www.cnblogs.com/zeze/p/nyoj19.html
總結
以上是生活随笔為你收集整理的nyoj19 全排列的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 求一个qq网名女生超拽。
- 下一篇: python数据库学习--Mysql