1 条题解
-
4赵青海 (huhe) LV 7 SU @ 2021-8-7 20:42:21
C++ :
#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #include<vector> #include<stdlib.h> #include<queue> #include<map> #include<vector> #include<math.h> const int INF = 0x3f3f3f3f; using namespace std; typedef long long ll; typedef double ld; typedef unsigned long long ull; const int P = 131; ll ans[100001]; int t,n,a[100001][7]; int main() { scanf("%d",&n); bool flag=false; for(int i=1; i<=n; i++) { int ma=0,wz; for(int j=1; j<=6; j++) { scanf("%d",&a[i][j]); if(ma<a[i][j]) { ma=a[i][j]; wz=j; } } int k1=wz+7,k2=wz+7; ll s1=0,s2=0;//求两次哈希值 for(int j=1; j<=6; j++) { if(k1%7==0) k1=1; if(k2%7==0) k2=6; s1=a[i][k1%7]+s1*P; s2=a[i][k2%7]+s2*P; k1++,k2--; } ans[i]=min(s1,s2);//将最小值存入数组 } sort(ans+1,ans+n+1);//排序找相同 for(int i=1; i<n; i++) if(ans[i]==ans[i+1]) { flag=true; printf("Twin snowflakes found.\n"); break; } if(!flag) printf("No two snowflakes are alike.\n"); return 0; }
- 1
信息
- ID
- 48
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 1
- 标签
- 递交数
- 64
- 已通过
- 59
- 上传者