51Nod:1995 三子棋
小的时候大家一定玩过“井”字棋吧。也就是在九宫格中,只要任意行、列,或者任意连续对角线上面出现三个相同的,就能获胜。现在小明和小花也在玩三子棋,但是他们不是在九宫格里,而是在3×4的格子里面。现在小明先下,但是他知道小花这个人很聪明,他想知道第一步下在哪一个地方最合适,你能帮帮他吗?
第一行输入一个整数T,表示数据组数(1<T<10000);
第二行输入两个整数x,y,表示3×4格子里面的一个坐标(x,y)(1<=x<=3,1<=y<=4);
每组数据输出最后小明输赢的结果,如果小明一定能赢,第一行输出“Win”,第二行输出小明所需要花的最少步数;如果小明跟小花只能打成平手,第一行输出“Equal”,第二行输出数字0;如果小明不能赢也不能跟小花打成平手,第一行输出“Lose”,第二行输出小花赢小明所需要花的最少步数。
2
2 1
2 4
Equal
0
Equal
0

每行三个要连续的三个才算赢,中间不能被打断。找规律真麻烦,画了好久QAQ
思路:
3*4的表格可以看出是一个对称的表格,数字相同的格子是等效的,即放在等效格子里要赢走的步数是一样的。
当放在3位置的时候,不论怎么放都是平局。
放在1位置时,小明稳赢(红色的是小明,先走),稳赢的步数为6
当放在位置2的时候,小明稳赢,步数是4
放在位置4的时候,最少4步
//走法不唯一,但是最少的获胜步数是不变的
AC代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int t,x,y;
int a[6][6];
a[1][1]=a[1][4]=a[3][1]=a[3][4]=6;
a[1][2]=a[1][3]=a[2][2]=a[2][3]=a[3][2]=a[3][3]=4;
a[2][1]=a[2][4]=0;
cin>>t;
while(t--)
{
cin>>x>>y;
if(a[x][y]) cout<<"Win\n"<<a[x][y]<<endl;
else cout<<"Equal\n"<<a[x][y]<<endl;
}
return 0;
}
51Nod:1995 三子棋的更多相关文章
- 51nod 1995 三子棋
小的时候大家一定玩过“井”字棋吧.也就是在九宫格中,只要任意行.列,或者任意连续对角线上面出现三个相同的,就能获胜.现在小明和小花也在玩三子棋,但是他们不是在九宫格里,而是在3×4的格子里面.现在小明 ...
- 【胡搞的不能AC的题解,暴力搜索一发博弈问题】1995 三子棋 - 51Nod
1995 三子棋 题目来源: syu校赛 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 原题链接: https://www.51nod.com/onlineJudge/ ...
- c语言实现:三子棋
问题描述:两个游戏者在3*3棋盘里轮流作标记,如果一个人在行,列或者两个对角线可以作三个标记,则为获胜. 我们首先得打印菜单供玩家选择(可以选择玩游戏或者退出游戏) void menu() { pri ...
- 用c语言实现三子棋
1 game.c://实现三子棋的.c文件 #define _CRT_SECURE_NO_WARNINGS #include"game.h" void init_board(cha ...
- C语言简易三子棋
这是本人依据现学知识写的简易三子棋,也不是那么简洁明了,望大佬指点 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include&l ...
- P1838 三子棋I
题目描述 小a和uim喜欢互相切磋三子棋.三子棋大家都玩过是吗?就是在九宫格里面OOXX(别想歪了),谁连成3个就赢了. 由于小a比较愚蠢,uim总是让他先. 我们用9个数字表示棋盘位置: 123 4 ...
- React + Ts 实现三子棋小游戏
在这里阅读效果更佳 还记得当年和同桌在草稿纸上下三子棋的时光吗 今天我们就用代码来重温一下年少(假设你有react基础,没有也行,只要你会三大框架的任意一种,上手react不难) 游戏规则 双方各执一 ...
- c语言小游戏-三子棋的完成
三子棋的实现 一.实现思路 1.初始化数组 三子棋是九宫格的格式,所以用二维数组接收数据.用‘O’代表电脑下的子,‘X’代表玩家下的子.未下子的时候初始化 ’ ‘(space).则二维数组为“char ...
- C语言数组实现三子棋
C语言实现三子棋(通过数组) 需要包含的头文件 #include <stdio.h> #include <stdlib.h> #include <time.h> 创 ...
随机推荐
- 雷林鹏分享:C# 委托(Delegate)
C# 委托(Delegate) C# 中的委托(Delegate)类似于 C 或 C++ 中函数的指针.委托(Delegate) 是存有对某个方法的引用的一种引用类型变量.引用可在运行时被改变. 委托 ...
- ASP.NET调用dos命令获取交换机流量
protected void btn_Cisco_Click(object sender, EventArgs e) { try { string ip = txt_ip.Value; string ...
- iterm2用法与技巧
1.设置窗口 定位到 [Preferences - Profiles - Window] 新窗口设定风格设为 [Top of Screen],这样每次新打开终端都会固定出现在屏幕的顶端且不会有窗口 ...
- Leetcode 73
class Solution { public: void setZeroes(vector<vector<int>>& matrix) { vector<vec ...
- sql 智能提示
依次打开SSMS—>工具—>选项—>文本编辑器—>Transact-SQL—>IntelliSense—>检查右侧窗体是否启用!!
- JavaScript学习总结(十)——this关键字
1 <script type="text/javascript"> 2 function Person(){ 3 /*使用var 属性名定义的属性是类的私有属性,外界无 ...
- en_a
1◆ai ay ei 2◆ au aw ɔː 3◆ a eɪ æ ɑː ɔː ʌ 4◆ ar ɔː ɑː ɜː 5◆ al ɑː ɔː 6◆ are air ...
- POJ 3083 Bfs+Dfs
注意求最短路的时候用Bfs. #include<iostream> #include<stdio.h> using namespace std; int w,h,ex,ey,s ...
- vuex 简单理解
废话不多说,直接上图! 不懂的 参考 API
- Oracle 11g 在audit_file_dest目录下产生大量的aud文件
一.adump目录数据暴增现象 发现某台数据库服务器的根目录的使用率在暴涨,发现Oracle数据库的adump目录,每秒生成一个dump文件.数据库并未开通审计外部记录.为什么adump目录会生成那么 ...