2020牛客国庆集训派对day2 H-STROOP EFFECT(英语题)
题目
https://ac.nowcoder.com/acm/contest/7818/H
题意
这题目真的太难读懂了,赛后我也是看了别人的代码才看懂题目的…
要求是:
对角线的和与非对角线的和相等
非对角线的组合必须关于对角线对称
连续三个的颜色或字不能相同
对角线内部要相等
题解
直接模拟就好
代码
#include <bits/stdc++.h>
using namespace std;
int main()
{
int t, cas = 1;scanf("%d", &t);int cnt[5][5], cnt2[5][5], cnt3[5];while(t--){
int a, b, ok = 1, temp2 = -1,temp3 = -1;memset(cnt2, 0, sizeof(cnt2));memset(cnt3, 0, sizeof(cnt3));while(1){
int temp;scanf("%d", &temp);a = temp/10;b = temp%10;if(temp2 != -1&&temp3 !=-1){
if(temp2/10 == temp/10&&temp2/10 ==temp3/10){
ok = 0;}else if(temp2%10 == temp%10&&temp2%10 ==temp3%10){
ok = 0;}}if(a == 0 && b == 0){
break;}cnt3[a]++;cnt3[b]++;cnt2[a][b]++;if(temp2!=-1) temp3 = temp2;temp2 = temp;}if(!(cnt2[1][1]==cnt2[2][2]&&cnt2[1][1]==cnt2[3][3]&&cnt2[1][1]==cnt2[4][4]))ok = 0;for(int i=1;i<5;i++)for(int j=i+1;j<5;j++)if(cnt2[i][j]!=cnt2[j][i])ok = 0;if(ok) printf("Case #%d: Stroop\n", cas++);else printf("Case #%d: Not Stroop\n", cas++);}
}
/* 12 11 12 13 21 22 23 31 32 33 11 22 33 00 42 14 34 11 11 11 13 33 41 23 22 21 22 31 44 32 33 12 44 22 44 43 24 33 00 */