这是什么原理???
  • 板块P1657 选书
  • 楼主cloudemakers
  • 当前回复4
  • 已保存回复4
  • 发布时间2022/12/11 13:10
  • 上次更新2023/10/24 08:00:18
查看原帖
这是什么原理???
550074
cloudemakers楼主2022/12/11 13:10

RT 这串代码放进去是0分 样例都过不了:

#include<bits/stdc++.h>
using namespace std;
int ans=0,x,per[50][2],flag[50]={0},flag2[50]={0};
void dfs(int a){
	if (a==x+1)	{
	ans++; return ;
}
	for (int i=1;i<=x;i++){
		if (flag[i]==0){
			for (int j=0;j<=1;j++){
				if (flag2[per[i][j]]==0){
				flag[i]=1;
				flag2[per[i][j]]=1;
				dfs(a+1);
				flag2[per[i][j]]=0;
				flag[i]=0;
			}
		}
		if (per[i][0]==1&&per[i][1]==1) 	return ;
		}
	}
}
int main(){
	cin>>x;
	for (int i=1;i<=x;i++) cin>>per[i][0]>>per[i][1];
	dfs(1);
	cout<<ans;
}

但是!

如果把if (per[i][0]==1&&per[i][1]==1)这里改成如下代码:

	if (per[i][0]==1&&per[i][1]==1) cout<<endl;	return ;

居然一下就AC了 这是什么原理?

2022/12/11 13:10
加载中...