hdu2699 Five in a Row 暴力穷举

PAT (Advanced Level) L1-6. 连续因子 for循环暴力 L1-6. 连续因子 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 一个正整数N的因子中可能存在若干连续的数字。例如630可以分解为3*5*6*7,其中5、6、7就是3个连续的数字。给定任一正整数N, 阅读详情

Five in a Row

Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 310    Accepted Submission(s): 134


Problem Description
The ACM Team of WHU is planning an online AI arena for Go-bang (Five in a Row). Now, we need some help.

We all know the famous game "Five in a Row". It is traditionally played with go pieces (black and white stones) on a go
board (15x15 intersections). The winner is the first player to get an unbroken row of five stones horizontally, vertically, or
diagonally.

We now have an uncompleted game, that is to say, yet no one won. You are required to tell us that whether the next player
could win within one step or not.
 

Input
The input consists of multiple test cases. The first line of input contains an integer T, which is the number of test cases.

Each test case is a 15 * 15 go board, 'B' represent for a black stone while 'W' for white ones. '.' represents cross with no
stone represented by 0.


[Technical Specification]
T is an integer, and T <= 20.
The number of white stones is either equal or 1 less than the number of black stones.
There is at least ONE '.' in each test case.
Test cases are separated by ONE empty line.
You can assume that black player goes first.
 

Output
For each test case, print a single line containing the result. If the next player could win within one step, display 'YES',
otherwise, display 'NO'.
 

Sample Input
2 ........W...... ..W......W...B. .W....B........ .W.......W..... ..BB....W...... ...B........... ....B........WW ...........B... ....W.......... .W..B.B....WBB. BW........B.W.B ............... W.....BB.W....W B..B.W.BB....B. ........WW..... ...B...W..BBW.. W..WBW..W...B.. ...W..WBW...... .....BWW..B.B.. ..BW.B.B..W.... B..W..WBW...... B......B......W B.B...B....W... ....B.WB...B... B.W............ .....WW...B.... ..B.....B...W.W .W.........WBW. B.............. ..W.B...W..W..B
 

Sample Output
NO YES



先判断要走哪种棋子,然后对能下的地方枚举4对相反方向看能不能连成五子


#include <cstdio>
#include <cstring>
#include <iostream>
#include <queue>
#include <stack>
#include <algorithm>
#include <vector>

using namespace std;

char mapp[20][20];
const int N = 15;

/*八对相反的位置:
(-1,0) (1,0) 上 下
(0,-1) (0,1) 左 右
(-1,-1) (1,1) 左上 右下
(-1,1) (1,-1) 右上 左下
*/
int dir[4][4] = { -1, 0, 1, 0, 0, -1, 0, 1, -1, -1, 1, 1, -1, 1, 1, -1 };

//判断是否出棋盘
bool Isout(int x, int y) {
	if (x < 0 || x >= N || y < 0 || y >= N) {
		return true;
	}
	return false;
}

/*五子相连只有三种情况:
XOOOO,OOOOX,OOXOO
在最左加一子,在最右面加一子,在中间某个地方加一子
然后在上面4对相反的方向上枚举尝试
*/
bool check(int x, int y, char go) {
	int cou;
	for (int i = 0; i < 4; i++) {
		cou = 1;  //要填的棋子占一个

		//方向A
		for (int nx = x + dir[i][0], ny = y + dir[i][1]; !Isout(nx, ny) && mapp[nx][ny] == go; nx += dir[i][0], ny += dir[i][1]) {
			cou++;
		}
		if (cou == 5) break;  //对应XOOOO成功

		//与方向A反向的反向B
		for (int nx = x + dir[i][2], ny = y + dir[i][3]; !Isout(nx, ny) && mapp[nx][ny] == go; nx += dir[i][2], ny += dir[i][3]) {
			cou++;
		}
		if (cou == 5) break;  //如果第一个循环没有进入的话,对应OOOOX成功
				      //如果第一个循环进入了的话,则说明两个方向合在一起成功,对应OOXOO成功
	}
	if (cou == 5) return true;
	return false;
}

int main()
{
	int T;
	scanf("%d", &T);
	while (T--) {
		int cw, cb;  //记录黑白子的数量
		cw = cb = 0;
		for (int i = 0; i < N; i++) {
			scanf("%s", mapp[i]);
			for (int j = 0; j < N; j++) {
				if (mapp[i][j] == 'W') cw++;
				if (mapp[i][j] == 'B') cb++;
			}
		}

		/*题目要求第一步一定是B,并且cw <= cb
		如果cw < cb说明下一步该白子走
		如:
		   B W B ->W
		如果cw == cb说明下一步该黑子走
		如:
		   B W B W ->B 
		*/
		char next = cw < cb ? 'W' : 'B';

		//标记是否有五子相连
		bool flag = false;
		for (int i = 0; i < N; i++) {
			for (int j = 0; j < N; j++) {
				if (mapp[i][j] == '.' && check(i, j, next)) {
					flag = true;
					break;
				}
			}
			if (flag) break;
		}
		if (flag) {
			puts("YES");
		}
		else {
			puts("NO");
		}
	}
	return 0;
}




基于TKVA与深度学习的量子点微型光谱仪光谱重建改进算法研究 本文提出了一种融合深度学习的改进TKVA算法(TKVA-DL),用于提升量子点微型光谱仪的光谱重建精度。该方法创新性地结合深度先验网络与注意力机制,通过自适应学习光谱隐式先验替代传统固定正则化项,并动态加权探测器响应通道。实验表明,所提方法在仿真和实测数据上均显著优于传统TKVA及主流深度学习算法,RMSE降低35%,PSNR提升4.2 dB,同时保持物理可解释性。完整MATLAB实现验证了方法的有效性与可复现性,为微型光谱仪的高精度重建提供了新思路。 关键词:量子点微型光谱仪;光谱重建;Tikhonov正 阅读详情

相关推荐

一文学会Cadence Sigrity PDN仿真——硬件新手小白都能看懂的保姆级教程

电源完整性的仿真,实际上是在仿真以及优化系统中的等效串联电阻。知道了仿真以及优化的目标之后,接下来就是要弄明白这个串联电阻从哪儿来以及怎么优化。整个系统中的串联电阻实际上由三部分组成:没有相位的阻抗,有相位的容抗和感抗,得益于相位,在某个特定的频点,容抗和感抗会大小相等,相位相反而相互抵消,这时候整个系统中就剩下了阻抗,所以整个系统的串联电阻达到了一个最低值,这种现象就是----谐振。当系统处于谐振点时候,整个系统会有一个最小的串联电阻,所以第一个优化电阻的手段就是让谐振来的更频繁一点。

学习帮的博客 2万+

poj 1753 filp game 2015年暑假训练第一题 枚举

题意就是说:翻牌,随便翻到一张牌,其上下左右随他都得翻,看最少用翻几张牌,能够让16张牌全为正或全为负。 这道题有一个大坑,就是每一张牌其实只能翻奇数次,比如翻的顺序为 (3,2)->   (2,2)  ->  (3,2)   = =   (2,2)  是  等价的 故最多翻的个数是16,从0到16一个一个测试,枚举的是翻牌的个数,若全为正或反,则断开枚举,否则一直枚举 最多有C(0,1

sholck222的专栏 229万+

从零开始:手把手教你规划与部署华为FusionCompute虚拟化平台(含网络规划避坑指南)

本文详细介绍了华为FusionCompute虚拟化平台的规划与部署流程,特别针对网络规划中的常见问题提供了避坑指南。从硬件软件清单检查、网络平面配置到VRM部署方案选择,帮助用户高效完成部署并优化性能,适用于云计算环境中的虚拟化平台搭建。

weixin_28693447的博客 242

USACO Broken Necklace

Broken Necklace You have a necklace of N red, white, or blue beads (3 1 2 1 2 r b b r b r r b r

在风雨中奔跑 16万+

从‘查理复用’到TM52F1363:深入剖析5脚188数码管的驱动原理与避坑指南

本文深入解析了5脚188数码管的驱动原理,重点介绍了查理复用技术如何通过5个IO引脚高效驱动188段显示,并详细探讨了TM52F1363单片机的寄存器配置与驱动实现。文章还提供了常见问题的解决方案和性能优化技巧,帮助开发者避免实际应用中的各种陷阱。

weixin_29159441的博客 477

YOLOv5/v7/v8首发革新改进——轻巧、创新的LADH检测头

本文介绍了一种原创改进的轻量化非对称多级压缩LADH检测头,该检测头能够实现即插即用,并在YOLOv5/v7/v8检测器中取得了显著的性能提升。本文将介绍一种原创改进的轻量级非对称多级压缩LADH(Lightweight Asymmetric Dual-Head)检测头,该检测头能够实现即插即用,并显著提升YOLO检测器的性能。因此,我们提出了一种非对称多级压缩的方法,即对不同类别的检测头采用不同的压缩比例。然而,为了进一步提高YOLO的性能,我们进行了一项原创改进,设计了一种轻巧且创新的LADH检测头。

IpyVariable的博客 2725

[sicily online]1048. Inverso

Constraints Time Limit: 1 secs, Memory Limit: 32 MB Description The game of ‘Inverso’ is played on a 3x3 grid of colored fields (each field is either black or white). Each field is numbered a

qiuchenl的专栏 1674

【数据集】30 m地表温度LST数据集

【数据集】30 m地表温度LST数据集

WW、forever的博客 1126

POJ  1753  Flip Game

Flip Game Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 14504 Accepted: 6218 Description Flip game is played on a rectangular 4x4 field with two-sided pieces placed on each o

算法之道 21万+

Codex入门19-数据库操作(解放双手:用自然语言写SQL、建表和数据迁移)

写 SQL 是后端开发的日常,但复杂的 JOIN、子查询、窗口函数总让人头疼。本文教你用 Codex CLI 实现:自然语言直接生成 CREATE TABLE、复杂 SQL 查询、数据库迁移脚本(Prisma/Knex/Alembic)、ORM 模型代码(SQLAlchemy/TypeORM)、甚至自动生成数据库文档。重点强调安全红线——永远不要让 AI 直接连接生产数据库。从需求描述到完整数据库层代码,一篇搞定。

yueyeguzhuo的专栏 233

通过一个具体的例子,讲解 SAP Cloud Platform Integration(CPI) 的使用方法

最近笔者由于项目需要,又得学习一个新工具:SAP Cloud Platform Integration,简称 CPI,以前又叫做HCI - HANA Cloud Platform Integration Service.笔者想通过本文,把使用这个工具的第一手体会,分享给曾经用过SAP CRM中间件,但尚未有机会接触到CPI的朋友们。之所以本文标题里把SAP CRM中间件和SAP CPI关联在一起,是因为二者同广义上说,扮演的都是系统集成里中间件的角色。SAP ERP和CRM通过qRFC进行业务数据同步,而中

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 2271

8 reasons I accepted your article

Journal editors reveal the top reasons a manuscript gets published By Elizabeth Zwaaf     Posted on 15 January 2013 http://www.elsevier.com/connect/8-reasons-i-accepted-your-article Pet

1021

本地部署大模型:dgx-spark-ai项目硬件选型、部署与私有化AI构建指南

大语言模型(LLM)的本地部署是当前AI工程实践中的重要方向,其核心原理在于将模型权重与计算过程完全置于用户可控的硬件环境中。这项技术的核心价值在于实现了数据主权与隐私安全,避免了云端服务的延迟、持续订阅成本及数据外泄风险。从技术实现看,本地部署的关键在于硬件选型与软件环境适配,尤其是NVIDIA GPU的CUDA生态、显存容量与内存带宽的匹配。在应用场景上,本地化部署特别适合对数据敏感性要求高的领域,如企业内部代码助手、金融分析或医疗研究,能够支持私有化模型微调与定制化工作流构建。本文以dgx-spark

weixin_42531579的博客 502

hdu2699

Five in a Row Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 364    Accepted Submission(s): 159 Problem Description The ACM Team of WH

active2489595970的博客 370

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Five in a Row

题目1 : Five in a Row 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Five in a Row is a game played on a 15x15 go board. Black and White take turns to place a stone of their color in an empty spot. The win...

weixin_38970751的博客 443

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

CodeForces - 825B Five-In-a-Row(棋盘模拟)

题目大意:给你一个五子棋棋局,让你找一下是不是可以接下来下一个子就赢。

薛崇祥的博客 571

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

每日一题之 hiho 204 Five in a Row

题目1 : Five in a Row 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Five in a Row is a game played on a 15x15 go board. Black and White take turns to place a stone of their color in an empty spot. The win...

城南花开的专栏 495

Codeforces 825 B Five-In-a-Row

题目地址:http://codeforces.com/contest/825/problem/B 题意:五子棋,判断下一步X能不能赢 思路:直接暴搜,遍历每个点判断各种情况(PS,这是我写过最乱的代码,因为忘记考虑有两种斜的情况,被hack了,然后就不想改代码了)

不要錯過才珍惜 387

CodeForces - 825B Five-In-a-Row

Five-In-a-Row 题目链接:点击这里 题意:         Alice and Bob在下五子棋,Alice用X,Bob用O。现在轮到Alice下了,判断Alice再下一子是否能赢。 题解:   再下一子能连成五子一共有5种情况。遍历棋盘,从中截取连续的5个格,判断是否为5种情况之一。截取方式一共有4种,分别是横向截取,纵向截取,右上截取,右下截取。其中斜向截取又

哇-WA 的博客 362

HDU 2699 Five in a Row (搜索)

题意: 问下一步是否会赢棋。 #include #include #include #include #include #include using namespace std; const int N = 15; char map[N+9][N+9]; int dx[]={0,0,-1,1,-1,1,-1,1}; int dy[]={-1,1,0,0,-1,1,1,-1}; b

binwin20 729

2016蓝桥杯省赛C/C++B组7题剪邮票 DFS枚举组合情况BFS判联通

剪邮票 如【图1.jpg】, 有12张连在一起的12生肖的邮票。 现在你要从中剪下5张来,要求必须是连着的。 (仅仅连接一个角不算相连) 比如,【图2.jpg】,【图3.jpg】中,粉红色所示部分就是合格的剪取。 请你计算,一共有多少种不同的剪取方法。 请填写表示方案数目的整数。 注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。

EventQueue的博客 6970

poj1006 Biorhythms 边界,坑题

Biorhythms Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 125633   Accepted: 39673 Description Some people believe that there are three cycles in a person

EventQueue的博客 2776

hdu计算机学院大学生程序设计竞赛(2015’11)1003 玩骰子

玩骰子 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1017    Accepted Submission(s): 306 Problem Description   Nias与Ains都特别喜欢玩骰子

EventQueue的博客 957

hdu5902 GCD is Funny

GCD is Funny Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 354    Accepted Submission(s): 83 Problem Description Alex has invente

EventQueue的博客 899

蓝桥杯历届试题 PREV-27 蚂蚁感冒 循环暴力模拟

历届试题 蚂蚁感冒   时间限制:1.0s   内存限制:256.0MB      问题描述   长100厘米的细长直杆子上有n只蚂蚁。它们的头有的朝左,有的朝右。   每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/秒。   当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行。   这些蚂蚁中,有1只蚂蚁感冒了。并且在和其它蚂蚁碰面时,会把感冒传染给碰

EventQueue的博客 857
上一篇: hdu1023 Train Problem II 卡特兰数,JAVA大数类
下一篇: 第一次参加蓝桥
Daemoonn
博客等级 码龄11年 42粉丝 198原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值