AcWing 4705. 矩阵(java---不是哈希题解,更容易理解的暴力+桶排去重+模拟)
原题链接
中等
作者:
CYHMMZDAN
,
2023-03-12 21:52:17
,
所有人可见
,
阅读 48
n=sc.nextInt();
int[] a=new int[n+1];
int[] b=new int[n+1];
int[][] c=new int[n+1][5];
int[][] d=new int[n+1][5];
for (int i=1;i<=n;i++){
a[i]=sc.nextInt();
b[i]=sc.nextInt();
c[i][1]=a[i];
d[i][1]=b[i];
c[i][2]=b[i]/10*10+a[i]/10;
d[i][2]=b[i]%10*10+a[i]%10;
c[i][3]=b[i]%10*10+b[i]/10;
d[i][3]=a[i]%10*10+a[i]/10;
c[i][4]=a[i]%10*10+b[i]%10;
d[i][4]=a[i]/10*10+b[i]/10;
if (i<n){
sc.next();
}
}
ans=n;
int[] v=new int[88888];
for (int i=1;i<=n;i++){
for (int k=1;k<=4;k++){
for (int j=i+1;j<=n;j++){
if (v[c[i][k]*1000+d[i][k]]==520){
continue;
}
if (c[i][k]==a[j]&&d[i][k]==b[j]){
ans--;
}
}
v[c[i][k]*1000+d[i][k]]=520;
}
}
out.println(ans);
out.close();