和测试点一样,为啥0分,求解!!

P1706 全排列问题

AC,仅供参考 ```cpp #include<bits/stdc++.h> using namespace std; const int MAX=1e4; int num[MAX],n; bool flag[MAX]; void s(int idx){ if(idx==n+1){ for(int i=1;i<=n;i++){ cout<<" "<<num[i]; } cout<<'\n'; } for(int i=1;i<=n;i++){ if(flag[i]==false){ num[idx]=i; flag[i]=true; s(idx+1); flag[i]=false; } } } int main(){ cin>>n; s(1); return 0; } ```
by 3_14 @ 2024-03-27 22:07:15


``` #include<bits/stdc++.h> using namespace std; int n,a[105],b[105],cnt,r; void dfs(int k){//有几个格子填,填什么 if(k>n){ cnt++; for(int j=1;j<k;j++){ cout<<setw(5)<<a[j]<<setw(5); } cout<<endl; return ; } for(int i=1;i<=n;i++){ if(!b[i]){//如果i没用 b[i]=1;//标记i使用过 a[k]=i;//i填入第k个格子 dfs(k+1);//填下一个 b[i]=0;//标记i没使用过 } } } int main(){ cin>>n; dfs(1);//从1开始 return 0; } ``` ### 有注释的更好理解!!
by Sizeof_cpp @ 2024-03-27 22:16:59


@[C2959668672](/user/1177895) 你把前面那串ios注释掉就好了 解绑那玩意再混用cin和printf会炸掉 亲测ac
by sading @ 2024-03-27 22:31:25


@[sading](/user/957279) 不是混用那两个罢?我记得输入和输出内部分别统一就行了。是他输出的时候混用了导致的罢。
by DoraYaoxy @ 2024-03-27 22:35:05


@[DoraYaoxy](/user/612567) 噢噢是的 还是我学太少了qwq
by sading @ 2024-03-27 22:41:37


@[DoraYaoxy](/user/612567) 的确是这样,厉害
by C2959668672 @ 2024-03-28 19:20:28


|