社区讨论
30分求助
P9752[CSP-S 2023] 密码锁参与者 3已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @lo06fs8i
- 此快照首次捕获于
- 2023/10/21 23:10 2 年前
- 此快照最后确认于
- 2023/11/02 12:04 2 年前
rt
CPP#include<bits/stdc++.h>
#define int long long
using namespace std;
int ans,fba[50],a[50][50],n;
void dfs(int dep){
if(dep > 5){
int bj1 = 0,bj2 = 0,ch = 0;
for(register int num = 1;num <= n;++num){
int difr = 0;
for(register int i = 1;i <= 5;++i){
if(fba[i] != a[num][i])difr++;
}
if(difr == 1){
++bj1;
}
else if(difr == 2){
for(register int i = 1;i <= 4;++i){
if(fba[i] != a[num][i] && fba[i + 1] != a[num][i + 1]){
if(fba[i] - a[num][i] == fba[i + 1] - a[num][i + 1])++difr;
else if(a[num][i] + 10 - fba[i] == a[num][i + 1] - fba[i + 1])++difr;
else if(a[num][i] - fba[i] == a[num][i + 1] + 10 - fba[i])++difr;
}
}
if(difr - 2 == 1)++bj2;
}
}
if(bj2 + bj1 == n){
++ans;
}
return ;
}
for(register int i = 0;i <= 9;++i){
fba[dep] = i;
dfs(dep + 1);
fba[dep] = -1;
}
}
signed main(){
cin >> n;
for(register int i = 1;i <= n;++i)for(register int j = 1;j <= 5;++j)cin >> a[i][j];
dfs(1);
cout << ans << '\n';
return 0;
}
回复
共 2 条回复,欢迎继续交流。
正在加载回复...