3d诡婚,IBM一键还原,3D预测专家彩酷酷caikuku
这个函数是stl自带的,用来求出该数组的下一个排列组合
相当之好用,懒人专用
适用于不想自己用dfs写全排列的同学(结尾附上dfs代码)
洛谷oj可去 p1008 三连击
注意:
#include <iostream> #include <algorithm> //函数所需头文件 using namespace std; int a[10]; void f(){ int t1,t2,t3; t1=a[1]*100+a[2]*10+a[3]*1; t2=a[4]*100+a[5]*10+a[6]*1; t3=a[7]*100+a[8]*10+a[9]*1; if(t1*2==t2&&t1*3==t3) cout<<t1<<" "<<t2<<" "<<t3<<endl; } int main(){ for(int i=1;i<=9;++i) a[i]=i; //sort do{ f(); }while(next_permutation(a+1,a+10)); //prev_ return 0; }
#include <bits/stdc++.h> using namespace std; int a[10]; bool vis[10]={0}; //记录该数字是否被使用过 int n=9; void dfs(int idx){ if(idx>n){ //边界输出 for(int i=1;i<=n;++i) cout<<a[i]; cout<<endl; } for(int i=1;i<=n;++i){ if(!vis[i]){ vis[i]=1; a[idx]=i; dfs(idx+1); vis[i]=0; //回溯 } } } int main(){ cin>>n; dfs(1); return 0; }
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
如何在没有core文件的情况下用dmesg+addr2line定位段错误
用QT制作3D点云显示器——QtDataVisualization
网友评论