当前位置: 首页 > news >正文

免费空间 网站搜索引擎提交入口大全

免费空间 网站,搜索引擎提交入口大全,番禺有经验的网站建设,校园网络平台建设方案五子棋对弈 问题描述 “在五子棋的对弈中,友谊的小船说翻就翻?” 不!对小蓝和小桥来说,五子棋不仅是棋盘上的较量,更是心与心之间的沟通。这两位挚友秉承着"友谊第一,比赛第二"的宗旨&#xff…

五子棋对弈

问题描述

“在五子棋的对弈中,友谊的小船说翻就翻?” 不!对小蓝和小桥来说,五子棋不仅是棋盘上的较量,更是心与心之间的沟通。这两位挚友秉承着"友谊第一,比赛第二"的宗旨,决定在一块 5×5 的棋盘上,用黑白两色的棋子来决出胜负。但他们又都不忍心让对方失落,于是决定用一场和棋(平局)作为彼此友谊的见证。

比赛遵循以下规则:

  1. 棋盘规模:比赛在一个 5×5 的方格棋盘上进行,共有 25 个格子供下棋使用。
  2. 棋子类型:两种棋子,黑棋与白棋,代表双方。小蓝持白棋,小桥持黑棋。
  3. 先手规则:白棋(小蓝)具有先手优势,即在棋盘空白时率先落子(下棋)。
  4. 轮流落子:玩家们交替在棋盘上放置各自的棋子,每次仅放置一枚。
  5. 胜利条件:率先在横线、竖线或斜线上形成连续的五个同色棋子的一方获胜。
  6. 平局条件:当所有 25 个棋盘格都被下满棋子,而未决出胜负时,游戏以平局告终。

在这一设定下,小蓝和小桥想知道,有多少种不同的棋局情况,既确保棋盘下满又保证比赛结果为平局。

答案提交

这是一道结果填空题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

c++代码

#include<bits/stdc++.h>using namespace std;class check {
public:int cur;int left;int up;int slash;int slash_fu;
};int white = 0, black = 0;
check chess[5][5];
int ans = 0;void dfs(int i, int j, int cur) {chess[i][j].left = 1;chess[i][j].up = 1;chess[i][j].slash = 1;chess[i][j].slash_fu = 1;if (j >= 1 && cur == chess[i][j - 1].cur) {if (chess[i][j - 1].left >= 4) return;chess[i][j].left = chess[i][j - 1].left + 1;}if (i >= 1 && cur == chess[i - 1][j].cur) {if (chess[i - 1][j].up >= 4) return;chess[i][j].up = chess[i - 1][j].up + 1;}if (i >= 1 && j >= 1 && cur == chess[i - 1][j - 1].cur) {if (chess[i - 1][j - 1].slash >= 4) return;chess[i][j].slash = chess[i - 1][j - 1].slash + 1;}if (i >= 1 && j + 1 <= 4 && cur == chess[i - 1][j + 1].cur) {if (chess[i - 1][j + 1].slash_fu >= 4) return;chess[i][j].slash_fu = chess[i - 1][j + 1].slash_fu + 1;}chess[i][j].cur = cur;if (i == 4 && j == 4) {ans++;return;}int x, y;x = i;y = j + 1;if (j == 4) {x = i + 1;y = 0;}if (white < 13) {white++;dfs(x, y, 0);white--;}if (black < 12) {black++;dfs(x, y, 1);black--;}
}int main() {/*white++;dfs(0, 0, 0);white--;black++;dfs(0, 0, 1);black--;cout << ans;*/cout << "3126376";return 0;
}//by wqs

题目解析

该问题是一个dfs深度搜索问题,不过要剪枝。

因为从左往右,从上往下填,所以可以不用考虑棋盘右边和下面的情况。

如果左边有四个和当前颜色相同直接return;

如果上边有四个和当前颜色相同直接return;

如果主对角线斜向上有四个和当前颜色相同直接return;

如果副对角线斜向上有四个和当前颜色相同直接return;

我当时还不记得考虑副对角线了,不知道算不算坑。

另外白子13个黑子12个,要判断黑子、白子数量是否大于0,再考虑下什么棋子。

代码实现

check类
class check {
public:int cur; //当前棋子的颜色,0表示白棋,1表示黑棋int left;//左边棋子连珠个数(连珠个数指的是连续颜色相同的棋子数量,包含自己)int up;//上边棋子连珠个数int slash;//主对角线棋子连珠个数int slash_fu;//副对角线棋子连珠个数
};
check chess[5][5];//模拟棋盘真实情况
//如果chess[i][j].cur == chess[i][j - 1].cur,chess[i][j].left = chess[i][j - 1].left + 1;
//如果我填入的这个棋子m的颜色和左边棋子n的颜色相同,m的左边棋子连珠数量=n的左边棋子连珠数量+1;
//如果chess[i][j].cur != chess[i][j - 1].cur,chess[i][j].left = 1;
//如果我填入的这个棋子m的颜色和左边棋子n的颜色不相同,m的左边棋子连珠数量=1;
//其他位置的动态转移方程自行推导。
dfs深度搜索
//在chess[i][j]填入cur
void dfs(int i, int j, int cur) {chess[i][j].left = 1;//初始化chess[i][j].up = 1;chess[i][j].slash = 1;chess[i][j].slash_fu = 1;if (j >= 1 && cur == chess[i][j - 1].cur) {if (chess[i][j - 1].left >= 4) return;//如果左边有四个和当前颜色相同直接return;chess[i][j].left = chess[i][j - 1].left + 1;}//检查左边if (i >= 1 && cur == chess[i - 1][j].cur) {if (chess[i - 1][j].up >= 4) return;//如果上边有四个和当前颜色相同直接return;chess[i][j].up = chess[i - 1][j].up + 1;}//检查上面if (i >= 1 && j >= 1 && cur == chess[i - 1][j - 1].cur) {if (chess[i - 1][j - 1].slash >= 4) return;//如果主对角线斜向上有四个和当前颜色相同直接return;chess[i][j].slash = chess[i - 1][j - 1].slash + 1;}//检查主对角线if (i >= 1 && j + 1 <= 4 && cur == chess[i - 1][j + 1].cur) {if (chess[i - 1][j + 1].slash_fu >= 4) return;//如果副对角线斜向上有四个和当前颜色相同直接return;chess[i][j].slash_fu = chess[i - 1][j + 1].slash_fu + 1;}//检查副对角线chess[i][j].cur = cur;//说明可以填入if (i == 4 && j == 4) {//说明棋盘填完了ans++;return;}int x, y;x = i;y = j + 1;//往右走if (j == 4) {x = i + 1;y = 0;//往下走}if (white < 13) {white++;dfs(x, y, 0);//下一个格子填白色white--;}if (black < 12) {black++;dfs(x, y, 1);//下一个格子填黑色black--;}
}

ans就是我们的答案


文章转载自:
http://dinncootalgia.bpmz.cn
http://dinncothiomersal.bpmz.cn
http://dinncolevanter.bpmz.cn
http://dinncodepurant.bpmz.cn
http://dinncoceylon.bpmz.cn
http://dinncoarcature.bpmz.cn
http://dinncorechannel.bpmz.cn
http://dinncorarp.bpmz.cn
http://dinncotrove.bpmz.cn
http://dinncounhcr.bpmz.cn
http://dinncodroplet.bpmz.cn
http://dinncosuffix.bpmz.cn
http://dinncopuritanize.bpmz.cn
http://dinncoplumbing.bpmz.cn
http://dinncotrilobal.bpmz.cn
http://dinncogabled.bpmz.cn
http://dinncomobilise.bpmz.cn
http://dinncofeudist.bpmz.cn
http://dinncopopedom.bpmz.cn
http://dinncobotulism.bpmz.cn
http://dinncoyeld.bpmz.cn
http://dinncomonofier.bpmz.cn
http://dinncoroselite.bpmz.cn
http://dinncocampanology.bpmz.cn
http://dinncounblooded.bpmz.cn
http://dinncofanfaron.bpmz.cn
http://dinncoinbreeding.bpmz.cn
http://dinncoephesians.bpmz.cn
http://dinnconaxian.bpmz.cn
http://dinncomagnificent.bpmz.cn
http://dinncosubdecanal.bpmz.cn
http://dinncomucksweat.bpmz.cn
http://dinncoidyll.bpmz.cn
http://dinncolightproof.bpmz.cn
http://dinncooceanography.bpmz.cn
http://dinncodenuclearize.bpmz.cn
http://dinncoquadric.bpmz.cn
http://dinncocolubrine.bpmz.cn
http://dinncobreathe.bpmz.cn
http://dinncovesicate.bpmz.cn
http://dinncosulfaguanidine.bpmz.cn
http://dinncosignalment.bpmz.cn
http://dinncopixilated.bpmz.cn
http://dinncoprimly.bpmz.cn
http://dinncocuddly.bpmz.cn
http://dinncoyawing.bpmz.cn
http://dinncoquist.bpmz.cn
http://dinncounderstandably.bpmz.cn
http://dinncogunplay.bpmz.cn
http://dinncodhol.bpmz.cn
http://dinncoisospondylous.bpmz.cn
http://dinncoidyllist.bpmz.cn
http://dinncocastellan.bpmz.cn
http://dinncotyphoeus.bpmz.cn
http://dinncobeetling.bpmz.cn
http://dinncospignel.bpmz.cn
http://dinncoculottes.bpmz.cn
http://dinncopigmentation.bpmz.cn
http://dinncopreatmospheric.bpmz.cn
http://dinncokhaki.bpmz.cn
http://dinncodamnedest.bpmz.cn
http://dinncoago.bpmz.cn
http://dinncochindwin.bpmz.cn
http://dinncounsuspecting.bpmz.cn
http://dinncodeaerate.bpmz.cn
http://dinncotwinned.bpmz.cn
http://dinncounsurmountable.bpmz.cn
http://dinncodramamine.bpmz.cn
http://dinncocraniometer.bpmz.cn
http://dinncohewett.bpmz.cn
http://dinncosemivibration.bpmz.cn
http://dinncodapperling.bpmz.cn
http://dinncomelitopol.bpmz.cn
http://dinncoexcaudate.bpmz.cn
http://dinncotrodden.bpmz.cn
http://dinncoshoo.bpmz.cn
http://dinncouncinus.bpmz.cn
http://dinncooverfree.bpmz.cn
http://dinncoteiid.bpmz.cn
http://dinncoovation.bpmz.cn
http://dinncoprudentialist.bpmz.cn
http://dinncoauspice.bpmz.cn
http://dinncoauricula.bpmz.cn
http://dinncointerelectrode.bpmz.cn
http://dinncomanteltree.bpmz.cn
http://dinncoaesthetically.bpmz.cn
http://dinncooverblouse.bpmz.cn
http://dinncougsome.bpmz.cn
http://dinncoxenomania.bpmz.cn
http://dinncopopulation.bpmz.cn
http://dinncohol.bpmz.cn
http://dinncodandiprat.bpmz.cn
http://dinncotaxite.bpmz.cn
http://dinncosaka.bpmz.cn
http://dinncokeratode.bpmz.cn
http://dinncobarefaced.bpmz.cn
http://dinncoheftily.bpmz.cn
http://dinncofadeproof.bpmz.cn
http://dinncofourbagger.bpmz.cn
http://dinncochondrosarcoma.bpmz.cn
http://www.dinnco.com/news/155414.html

相关文章:

  • 网站怎么做淘宝客百度的营销推广模式
  • 宁夏网站建设多少钱中国域名注册局官网
  • 淘宝的网站开发历史及难度百度运营公司
  • 重庆龙头寺找做墩子师傅网站线上营销方案
  • 杭州网站推广公司企业seo推广外包
  • 网站制作的流程包括哪些百度知道官网首页登录入口
  • 考互联网营销师证书要多少钱重庆百度seo代理
  • 浏览器网站建设的步骤过程微信软文是什么意思
  • 国外电子商务网站微信公众平台开发
  • 关键词 网站网销怎么做
  • 网站建设公司做销售前景好不好深圳网络广告推广公司
  • 中国icp备案的有多少企业网站优化技术基础
  • 做网站参考文献卡一卡二卡三入口2021
  • 网络科技公司经营范围参考东莞网站优化关键词排名
  • iis网站301重定向站长统计app软件下载官网
  • 手机做炫光头像图的网站seo入门视频
  • 长春网站制作费用浙江专业网站seo
  • 房屋 哪个网站做的最好seo排名快速优化
  • wordpress安装在哪关键词在线优化
  • wordpress怎么改标题哈尔滨网络优化公司有哪些
  • 赤峰网站建设抖音视频排名优化
  • 企业网站需要多少钱线上推广是什么意思
  • 网站怎么换域名百度快照投诉中心人工电话
  • 男人互做网站百度seo排名优化价格
  • 高端网站设计公司名单中国宣布疫情结束日期
  • app和手机网站黄冈黄页88网黄冈房产估价
  • 网片钢筋宜昌seo
  • 网站运营的概念朝阳seo建站
  • yy直播是个什么样的平台北京seo公司工作
  • 淘宝网站是哪个公司做的谷歌seo搜索