Tic-Tac-Toe-(暴力模拟)
https://ac.nowcoder.com/acm/contest/847/B
#include<algorithm>
#include<cstring>
#include<iostream>
#include<math.h>
#include<string>
#include<stdio.h>
#include<map>
#include<queue>
#define ll long long
#define inf 0x3f3f3f3f
using namespace std; char a[][];
int t; bool check()
{
int num1=,num2=;///白子数,空位数
for(int i=;i<;i++)///横的
{
num1=;num2=;
for(int j=;j<;j++)
{
if( a[i][j]=='W' )
num1++;
else if( a[i][j]=='#' )
num2++;
else
break;
}
if(num1== && num2==)
return true;
} for(int j=;j<;j++)///竖的
{
num1=num2=;
for(int i=;i<;i++)
{
if( a[i][j]=='W' )
num1++;
else if( a[i][j]=='#' )
num2++;
else
break;
}
if(num1== && num2==)
return true;
}
num1=num2=;
for(int i=;i<;i++)///左上到左下
{
if( a[i][i]=='W' )
num1++;
else if( a[i][i]=='#' )
num2++;
else
break;
}
if(num1== && num2==)
return true;
num1=num2=;
for(int i=;i<;i++)///左下到右上
{
if(i==)
{
if( a[][]=='W' )
num1++;
else if( a[][]=='#' )
num2++;
else if( a[][]=='B')
break;
}
if(i==)
{
if( a[][]=='W' )
num1++;
else if( a[][]=='#' )
num2++;
else if( a[][]=='B')
break;
}
if(i==)
{
if( a[][]=='W' )
num1++;
else if( a[][]=='#' )
num2++;
else if( a[][]=='B')
break;
}
}
if(num1== && num2==)
return true;
return false;
} int main()
{
scanf("%d",&t);
while(t--)
{
int flag;
flag=;
for(int i=;i<;i++)
scanf("%s",a[i]);
if(check())///正常情况下一步能赢
{
for(int i=;i<&&flag==;i++)
{
for(int j=;j<&&flag==;j++)
{
if( a[i][j]=='W' )
{
a[i][j]='#';
if(!check())
flag=;///存在某种情况被拿了之后不能赢
a[i][j]='W';
}
}
}
if(flag==)
printf("Alice\n");
else
printf("Emmm\n");
}
else
{
printf("Bob\n");
}
}
return ;
}
Tic-Tac-Toe-(暴力模拟)的更多相关文章
- 2019 GDUT Rating Contest III : Problem C. Team Tic Tac Toe
题面: C. Team Tic Tac Toe Input file: standard input Output file: standard output Time limit: 1 second M ...
- Principle of Computing (Python)学习笔记(7) DFS Search + Tic Tac Toe use MiniMax Stratedy
1. Trees Tree is a recursive structure. 1.1 math nodes https://class.coursera.org/principlescomputin ...
- POJ 2361 Tic Tac Toe
题目:给定一个3*3的矩阵,是一个井字过三关游戏.开始为X先走,问你这个是不是一个合法的游戏.也就是,现在这种情况,能不能出现.如果有人赢了,那应该立即停止.那么可以知道X的步数和O的步数应该满足x= ...
- 【leetcode】1275. Find Winner on a Tic Tac Toe Game
题目如下: Tic-tac-toe is played by two players A and B on a 3 x 3 grid. Here are the rules of Tic-Tac-To ...
- LeetCode 5275. 找出井字棋的获胜者 Find Winner on a Tic Tac Toe Game
地址 https://www.acwing.com/solution/LeetCode/content/6670/ 题目描述A 和 B 在一个 3 x 3 的网格上玩井字棋. 井字棋游戏的规则如下: ...
- [CareerCup] 17.2 Tic Tac Toe 井字棋游戏
17.2 Design an algorithm to figure out if someone has won a game oftic-tac-toe. 这道题让我们判断玩家是否能赢井字棋游戏, ...
- Epic - Tic Tac Toe
N*N matrix is given with input red or black.You can move horizontally, vertically or diagonally. If ...
- python 井字棋(Tic Tac Toe)
说明 用python实现了井字棋,整个框架是本人自己构思的,自认为比较满意.另外,90%+的代码也是本人逐字逐句敲的. minimax算法还没完全理解,所以参考了这里的代码,并作了修改. 特点 可以选 ...
- ACM-Team Tic Tac Toe
我的代码: #include <bits/stdc++.h> using namespace std; int main() { char a[3][3]; int i,j=0; for( ...
- bnuoj 20832 Calculating Yuan Fen(暴力模拟)
http://www.bnuoj.com/bnuoj/problem_show.php?pid=20832 [题意]: 给你一串字符串,求一个ST(0<ST<=10000),对字符串中字符 ...
随机推荐
- Shuffle an Array (水塘抽样)
随机性问题 水塘抽样算法可保证每个样本被抽到的概率相等 使用场景:从包含n个项目的集合S中选取k个样本,其中n为一很大或未知的数量,尤其适用于不能把所有n个项目都存放到主内存的情况 Knuth洗牌算法 ...
- 螺旋折线-C++
标题:螺旋折线 如图p1.png所示的螺旋折线经过平面上所有整点恰好一次. 对于整点(X, Y),我们定义它到原点的距离dis(X, Y)是从原点到(X, Y)的螺旋折线段的长度. 例如dis(0, ...
- 300iq Contest 1 简要题解
300iq Contest 1 简要题解 咕咕咕 codeforces A. Angle Beats description 有一张\(n\times m\)的方阵,每个位置上标有*,+,.中的一种. ...
- 关于海大邮箱(ouc.edu)客户端配置及使用说明
关于海大邮箱(ouc.edu)客户端配置及使用说明 邮箱说明 系统简介 海大邮箱使用的是论客(Coremail)提供的邮件系统:(很多大学都是) Coremail论客简介(摘自官网): Coremai ...
- App.config 分开文件
App.config 分开文件 分开文件里配置: <appSettings configSource="App_TestMachine.config"> App_Tes ...
- ubuntu Ifconfig只显示一个lo
第一步启动网卡 是网卡未启动 命令: ifconfig -a,显示所有网络接口的信息. ifconfig显示当前激活的网络接口信息 ifconfig eth0 up 启动网卡 ifconfig -a ...
- ASP.NET Core中使用Cache缓存
ASP.NET Core中使用Cache缓存 缓存介绍: 通过减少生成内容所需的工作,缓存可以显著提高应用的性能和可伸缩性. 缓存对不经常更改的数据效果最佳. 缓存生成的数据副本的返回速度可以比从原始 ...
- Vue – 基础学习(5):动态加载和注册组件
// var myComponent =() => import(`./../../components/custom_panel/${t_url}.vue`);// //var myCompo ...
- Java 之 线程 —线程通信( 等待唤醒机制)
一.线程间通信 概念:多个线程在处理同一资源,但是处理的动作(线程的任务)却不相同. 例如: 线程 A 用来生成包子的,线程 B 用来吃包子的,包子可以理解为同一资源,线程 A 与线程 B 处理的动作 ...
- JavaScript 之 navigator 对象
navigator 对象可以查看用户所使用的浏览器类型和系统平台类型. 1.userAgent 通过 userAgent 可以判断用户浏览器的类型. Chrome 浏览器效果: 2.platform ...