题解
2024-06-23 20:41:00
发布于:广东
11阅读
0回复
0点赞
用深搜写的
#include <iostream>
#include <cstdio>
using namespace std;
char a[105];
bool vis[105];
int n;
int f[55][2];
bool dfs(int ct){
if(ct == n / 2 + 1){
for(int i = 1; i <= n / 2; i++){
cout << f[i][0] << ' ' << f[i][1] << endl;
}
return 1;
}
for(int i = 1; i <= n; i++){
for(int j = 1; j <= n; j++){
if(abs(i - j) > 1 && !vis[i] && !vis[j] && (a[i] == 'L' || a[j] == 'R')){
vis[i] = vis[j] = 1;
f[ct][0] = i, f[ct][1] = j;
if(dfs(ct + 1)) return 1;
vis[i] = vis[j] = 0;
}
}
}return 0;
}
int main(){
cin >> n;
cin >> a + 1;
dfs(1);
}
这里空空如也
有帮助,赞一个