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
*/