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
++);
}
}