1 条题解
-
0
题解一:
#include<bits/stdc++.h> using namespace std; const int N=1e5+10; int v[N],a[6],b[6],c[6]; int main() { int n;scanf("%d",&n); memset(v,0,sizeof(v)); b[1]=1;for(int i=2;i<=5;i++) b[i]=b[i-1]*10; for(int ni=1;ni<=n;ni++) { for(int i=1;i<=5;i++)scanf("%d",&a[i]); for(int i=1;i<=5;i++) { memcpy(c,a,sizeof(a)); for(int j=1;j<=9;j++) { c[i]=(c[i]+1)%10; int y=0;for(int k=1;k<=5;k++)y+=c[k]*b[k]; v[y]++; } } for(int i=2;i<=5;i++) { memcpy(c,a,sizeof(a)); for(int j=1;j<=9;j++) { c[i-1]=(c[i-1]+1)%10; c[i]=(c[i]+1)%10; int y=0;for(int k=1;k<=5;k++)y+=c[k]*b[k]; v[y]++; } } } int ans=0; for(int i=0;i<=99999;i++)ans+=(v[i]==n); printf("%d\n",ans); return 0; }题解二:
#include<bits/stdc++.h>//code by cff_0102 using namespace std; int x[10][10][10][10][10]; int f(int a, int b){ return (a+b)%10; } int main(){ ios::sync_with_stdio(0);cin.tie(0); int n;cin>>n; for(int _=0;_<n;_++){ int a, b, c, d, e;cin>>a>>b>>c>>d>>e; for(int i=1;i<=9;i++){ x[f(a, i)][ b ][c][d][e]++;//此处 b 前后打空格是迫不得已,否则会被识别为加粗(bold)! x[a][f(b, i)][c][d][e]++; x[a][ b ][f(c, i)][d][e]++; x[a][ b ][c][f(d, i)][e]++; x[a][ b ][c][d][f(e, i)]++; x[f(a, i)][f(b, i)][c][d][e]++;
- 1
信息
- ID
- 1966
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 3
- 标签
- 递交数
- 41
- 已通过
- 25
- 上传者