题解
2025-08-10 09:42:39
发布于:上海
73阅读
0回复
0点赞
暴力这块/.
#include<iostream>
using namespace std;
int a[10];//输入的第几个数字
int vis[100000];//0 0 1 1 5 => 115;2 3 0 1 0=>23010
int round1(int x,int num){//扭的位置和幅度
int ans=0;
for(int i;i<=5;i++){
ans*=10;
if(i!=x)ans+=a[i];
else ans+=(a[i]+num)%10;//及得取余10
}
return ans;
}
int round2(int x,int num){
int ans=0;
for(int i=1;i<=5;i++){
ans*=10;
if(i!=x && i!=x+1)ans+=a[i];
else ans+=(a[i]+num)%10;
}
return ans;
}
int main(){
freopen("lock.in","r",stdin);
freopen("lock.out","w",stdout);
int n;//组数
cin>>n;
for(int i=1;i<=n;i++){
for(int j=1;j<=5;j++)
cin>>a[j];//输入数字
//先扭但个
for(int j=1;j<=5;j++)
for(int num=0;num<=9;num++)
vis[round1(j,num)]++;
//再扭两个
for(int j=1;j<=4;j++)
for(int num=0;num<=9;num++)
vis[round2(j,num)]++;
};
int ans=0;
for(int i=0;i<=99999;i++)
if(vis[i]==n)ans++;
cout<<ans;
fclose(stdin);
fclose(stdout);
return 0;
}
这里空空如也




有帮助,赞一个