社区讨论
2023 csp s第一题90分求调《悬关》(急)
灌水区参与者 2已保存回复 3
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 3 条
- 当前快照
- 1 份
- 快照标识符
- @m2n9dun6
- 此快照首次捕获于
- 2024/10/24 20:07 去年
- 此快照最后确认于
- 2025/11/04 16:18 4 个月前
CPP
#include<bits/stdc++.h>
using namespace std;
int n,a[10][6],ans;
bool pd(int a1,int a2,int a3,int a4,int a5){
int c[6]={0,a1,a2,a3,a4,a5};
for(int i=1;i<=n;i++){
int zb[6]={0},db[6]={0};
int num=0;
for(int j=1;j<=5;j++){
if(c[j]!=a[i][j]){
num++;
zb[num]=j;
db[num]=c[j];
}
}
if(num==0||num>2){
return 0;
}
if(num==1){
continue;
}
if(zb[2]!=zb[1]+1) return 0;
bool b=0;
if(db[2]-a[i][zb[2]]==db[1]-a[i][zb[1]]) b=1;
if(a[i][zb[2]]<a[i][zb[1]]&&db[1]-a[i][zb[1]]+10==db[2]-a[i][zb[2]]) b=1;
if(a[i][zb[2]]>a[i][zb[1]]&&a[i][zb[1]]-db[1]==a[i][zb[2]]-db[2]+10) b=1;
if(a[i][zb[2]]<a[i][zb[1]]&&db[1]-a[i][zb[1]]==a[i][zb[2]]-db[2]+10) b=1;
if(a[i][zb[2]]>a[i][zb[1]]&&a[i][zb[1]]-db[1]+10==a[i][zb[2]]-db[2]) b=1;
if(b==0) return 0;
}
return 1;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
for(int j=1;j<=5;j++){
cin>>a[i][j];
}
}
// cout<<pd(0,0,1,9,3);
for(int i=0;i<=9;i++){
for(int j=0;j<=9;j++){
for(int k=0;k<=9;k++){
for(int l=0;l<=9;l++){
for(int m=0;m<=9;m++){
if(pd(i,j,k,l,m)){
ans++;
//cout<<i<<j<<k<<l<<m<<endl;
}
}
}
}
}
}
cout<<ans;
return 0;
}
回复
共 3 条回复,欢迎继续交流。
正在加载回复...