Team Tic Tac Toe

Team Tic Tac Toe
题面


题意
3*3的矩阵中填26个字母。一种字母站满一行或一列或对角线。则cnt1++;
2个相同字母和一个不同的站满一行或一列或对角线,则cnt2++;
分析
这题数据范围是非常非常小,所以暴力枚举所有结果就可以了。
具体可以看代码。
AC代码

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
char a[4][4];
pair<char,char>d[100];
int vis[1000],n=0,q=0,v=0,cnt=0;
int main(){
cin>>a[1][1]>>a[1][2]>>a[1][3]>>a[2][1]>>a[2][2]>>a[2][3]>>a[3][1]>>a[3][2]>>a[3][3];
for(int i=1;i<=3;i++){
     for(int j=1;j<=3;j++){
         if(vis[a[i][j]]==0)
           {vis[a[i][j]]=1;n++;}
}//统计一共有多少种不同的字母
}
memset(vis,0,sizeof(vis));
for(int i=1;i<=3;i++){
         if(a[i][1]==a[i][2]&&a[i][1]==a[i][3]&&vis[a[i][1]]==0)
                  { q++;vis[a[i][1]]=1;}
}

for(int j=1;j<=3;j++){
if(a[1][j]==a[2][j]&&a[1][j]==a[3][j]&&vis[a[1][j]]==0)
 { q++;vis[a[1][j]]=1;}
}
if(a[1][1]==a[2][2]&&a[1][1]==a[3][3]&&vis[a[1][1]]==0)
 { q++;vis[a[1][1]]=1;}
if(a[1][3]==a[2][2]&&a[1][3]==a[3][1]&&vis[a[1][3]]==0)
 { q++;vis[a[1][3]]=1;}
cout<<q<<endl;

int j;
for(int i=1;i<=3;i++){
 if(a[i][1]==a[i][2]&&a[i][1]==a[i][3]) continue;
    if(a[i][1]==a[i][2]) {{for( j=1;j<=cnt;j++) if(a[i][1]==d[j].first&&a[i][3]==d[j].second||a[i][3]==d[j].first&&a[i][1]==d[j].second) break;} if(j==cnt+1) {cnt++;d[cnt].first=a[i][1];d[cnt].second=a[i][3];v++;}}
    if(a[i][1]==a[i][3]) {{for( j=1;j<=cnt;j++) if(a[i][1]==d[j].first&&a[i][2]==d[j].second||a[i][2]==d[j].first&&a[i][1]==d[j].second) break;}  if(j==cnt+1){cnt++;d[cnt].first=a[i][1];d[cnt].second=a[i][2];v++;}}
    if(a[i][3]==a[i][2]) {{for( j=1;j<=cnt;j++) if(a[i][1]==d[j].first&&a[i][3]==d[j].second||a[i][3]==d[j].first&&a[i][1]==d[j].second) break;}  if(j==cnt+1){ cnt++;d[cnt].first=a[i][1];d[cnt].second=a[i][3];v++;}}
}

for(int q=1;q<=3;q++){
if(a[1][q]==a[2][q]&&a[1][q]==a[3][q])  continue;
    if(a[1][q]==a[2][q]) {{for( j=1;j<=cnt;j++) if(a[1][q]==d[j].first&&a[3][q]==d[j].second||a[3][q]==d[j].first&&a[1][q]==d[j].second) break;} if(j==cnt+1) { cnt++;d[cnt].first=a[1][q];d[cnt].second=a[3][q];v++;}}
    if(a[1][q]==a[3][q]) {{for( j=1;j<=cnt;j++) if(a[1][q]==d[j].first&&a[2][q]==d[j].second||a[2][q]==d[j].first&&a[1][q]==d[j].second) break;}   if(j==cnt+1) {cnt++;d[cnt].first=a[1][q];d[cnt].second=a[2][q];v++;}}
    if(a[3][q]==a[2][q]) {{for( j=1;j<=cnt;j++) if(a[1][q]==d[j].first&&a[3][q]==d[j].second||a[3][q]==d[j].first&&a[1][q]==d[j].second) break;} if(j==cnt+1) { cnt++;d[cnt].first=a[1][q];d[cnt].second=a[3][q];v++;}}
}

if(a[1][1]==a[2][2]&&a[1][1]==a[3][3]) ;
else{
 if(a[1][1]==a[2][2]) {{for( j=1;j<=cnt;j++) if(a[1][1]==d[j].first&&a[3][3]==d[j].second||a[3][3]==d[j].first&&a[1][1]==d[j].second) break;}  if(j==cnt+1) {cnt++;d[cnt].first=a[1][1];d[cnt].second=a[3][3];v++;}}
    if(a[1][1]==a[3][3]) {{for( j=1;j<=cnt;j++) if(a[1][1]==d[j].first&&a[2][2]==d[j].second||a[2][2]==d[j].first&&a[1][1]==d[j].second) break;}  if(j==cnt+1) {cnt++;d[cnt].first=a[1][1];d[cnt].second=a[2][2];v++;}}
    if(a[2][2]==a[3][3]) {{for( j=1;j<=cnt;j++) if(a[1][1]==d[j].first&&a[3][3]==d[j].second||a[3][3]==d[j].first&&a[1][1]==d[j].second) break;} if(j==cnt+1) { cnt++;d[cnt].first=a[1][1];d[cnt].second=a[3][3];v++;}}
}

if(a[1][3]==a[2][2]&&a[1][3]==a[3][1]) ;
else {
 if(a[1][3]==a[2][2]) {{for( j=1;j<=cnt;j++) if(a[1][3]==d[j].first&&a[3][1]==d[j].second||a[3][1]==d[j].first&&a[1][3]==d[j].second) break;}  if(j==cnt+1) {cnt++;d[cnt].first=a[1][3];d[cnt].second=a[3][1];v++;}}
    if(a[1][3]==a[3][1]) {{for( j=1;j<=cnt;j++) if(a[1][3]==d[j].first&&a[2][2]==d[j].second||a[2][2]==d[j].first&&a[1][3]==d[j].second) break;} if(j==cnt+1) {cnt++;d[cnt].first=a[1][3];d[cnt].second=a[2][2];v++;}}
    if(a[2][2]==a[3][1]) {{for( j=1;j<=cnt;j++) if(a[1][3]==d[j].first&&a[3][1]==d[j].second||a[3][1]==d[j].first&&a[1][3]==d[j].second) break;}  if(j==cnt+1) {cnt++;d[cnt].first=a[1][3];d[cnt].second=a[3][1];v++;}}
}
cout<<v<<endl;
return 0;
}
全部评论

相关推荐

03-03 19:02
已编辑
东华理工大学 Node.js
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
# 长得好看会提高面试通过率吗? #
4609次浏览 48人参与
# 离家近房租贵VS离家远但房租低,怎么选 #
16917次浏览 137人参与
# MiniMax求职进展汇总 #
25286次浏览 322人参与
# 沪漂/北漂你觉得哪个更苦? #
1646次浏览 41人参与
# 你的实习产出是真实的还是包装的? #
3261次浏览 54人参与
# 春招至今,你的战绩如何? #
16231次浏览 147人参与
# 巨人网络春招 #
11558次浏览 230人参与
# HR最不可信的一句话是__ #
1118次浏览 33人参与
# AI面会问哪些问题? #
976次浏览 24人参与
# 你做过最难的笔试是哪家公司 #
1319次浏览 23人参与
# AI时代,哪个岗位还有“活路” #
2956次浏览 53人参与
# 不考虑薪资和职业,你最想做什么工作呢? #
152954次浏览 889人参与
# 简历第一个项目做什么 #
32195次浏览 363人参与
# 军工所铁饭碗 vs 互联网高薪资,你会选谁 #
8032次浏览 43人参与
# XX请雇我工作 #
51165次浏览 171人参与
# 简历中的项目经历要怎么写? #
311149次浏览 4272人参与
# 投格力的你,拿到offer了吗? #
178395次浏览 891人参与
# 你最满意的offer薪资是哪家公司? #
77017次浏览 375人参与
# AI时代,哪些岗位最容易被淘汰 #
64881次浏览 895人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
187643次浏览 1123人参与
# 你怎么看待AI面试 #
180898次浏览 1320人参与
# 正在春招的你,也参与了去年秋招吗? #
364423次浏览 2642人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务