有大佬能帮忙看下嘛?
CSP-S T1洛谷自测T1能A,有道爆0
本地测没问题,洛谷在线IDE又出现问题
T1的测试样例在代码下面注释里,包括答案
#include<bits/stdc++.h>
using namespace std;
const int N=1e4;
int n;
int a[N][N];
int b[N][N];
string c[N];
int num,ans;
map<int,int> mp;
map<string,int> Mp;
int main(){
//freopen("lock.in","r",stdin);
//freopen("lock.out","w",stdout);
for(int i=0;i<=20;i++){
if(i<=9) mp[i]=i;
else mp[i]=mp[i-10];
}
mp[-1]=9,mp[10]=0;
cin>>n;
for(int i=1;i<=n;i++){
for(int j=1;j<=5;j++){
cin>>a[i][j];
}
}
for(int m=1;m<=n;m++)
for(int k=1;k<=5;k++) //位数
for(int i=1;i<=9;i++){
num++;
b[num][k]=mp[a[m][k]+i];
for(int j=1;j<=5;j++){
if(k!=j){
b[num][j]=a[m][j];
}
}
} //变化数
for(int m=1;m<=n;m++)
for(int k=1;k<5;k++) //位数
for(int i=1;i<=9;i++){
num++;
b[num][k]=mp[a[m][k]+i];
b[num][k+1]=mp[a[m][k+1]+i];
for(int j=1;j<=5;j++){
if(k!=j&&k+1!=j){
b[num][j]=a[m][j];
}
}
} //变化数
for(int i=1;i<=num;i++){
char C[10];
for(int j=1;j<=5;j++){
//cout<<b[i][j]<<' ';;
C[j]=b[i][j]+int('0');
}
c[i]=C;
//cout<<c[i]<<endl;
}
sort(c+1,c+num+1);
for(int i=1;i<=num;i++){
Mp[c[i]]++;
if(Mp[c[i]]==n) ans++;
}
cout<<ans;
return 0;
}
/*
1
0 0 1 1 5
81
2
2 8 3 5 5
2 8 3 5 1
10
*/