tictac 立体井字棋

源文件名:tictac.(pas/c/cpp)
输入文件:tictac.in
输出文件:tictac.out
时间限制:1秒
空间限制:64M

问题描述
  你玩过井字棋游戏吗?它的英文名字叫做tic-tac-toe,是一个古老的博弈游戏。游戏在一个3×3的棋盘上进行。游戏约定,先在同一条线(横线、纵线或斜线)上占有3枚棋子者得胜。尽管现在借助计算机可以生成这个游戏所有可能的情况,但这个古老的游戏从未失去它在博弈游戏中的意义。在它的身上不断可以看到有新的东西产生。比如,有人将井字棋游戏从平面空间扩展到三维空间,发明了立体井字棋。立体井字棋的棋盘是一个n×n×n的立方体,游戏双方在立方体的这n^3个格子中布子。与传统井字棋游戏的规则相似,首先占据了一条线上的全部n个格子的人获胜。当然,这个立方体的大小是有考究的,并不是所有的正整数n都合适:n小了获胜太易,先行者必胜;n大了获胜又太难,最后可能双方都无法获胜。为此,我们需要收集与该游戏有关的一些数据,以决定最佳的n的值。我们想知道,对于某个n,在游戏中有多少种获胜的情况。你的任务是确定,在n×n×n的立方体中放n个子,有多少种布子方案可以使这n个子连成一条线。

输入格式
  输入数据为一个正整数n,表示立方体的大小。
输出格式
  输出为一个正整数,它表示在n^3的立方体中n个格子连成一条直线的方案数。

样例输入
2
样例输出
28

数据规模
  对于30%的数据,n<=10;
  对于100%的数据,n<=1000。

话说我算了几个简单的然后就疯了、、

然后、、、

Matrix67神的解法霸气

你可以用各种方法推导出这个公式,但是下面这个方法非常简洁有趣:

假设有一个大小为(n + 2)^3的立方体“包住了”这个大小为n^3的立方体。

假如这个边长为n的立方体中的每一条直线都“往两头延伸”,那么每一条线都会“穿透”外面更大的立方体中的两个单位立方体。

于是,我们只需要计算出n^3的立方体“外面的一层壳”有多少个单位立方体就行了。

显然,壳子有(n + 2)^3-n^3个单位立方体。

这个数除以2即是我们要求的.

So..Code

1 Var
2   n:integer;
3 Begin
4   Read(n);
5   Writeln(((n+2)*(n+2)*(n+2)-n*n*n) Shr 1);
6 End.

转载于:https://www.cnblogs.com/Catch-22/p/3343568.html

tictac 立体井字棋--数学问题相关推荐

  1. 【结论】立体井字棋(jzoj 2124)

    立体井字棋 题目大意: 在一个n×n×n的正方体中,由n个格子连成一条直线的方案数(多少种可能用n个格子连成一条直线) 样例输入 2 样例输出 28 数据范围限制 对于30%的数据, n<=10 ...

  2. 用数学方法计算井字棋合法局面数——波利亚定理的简单应用

    用数学方法计算井字棋合法局面数--波利亚定理的简单应用 0.前言 记不得那天在B站发现一个互动下井字棋智商普查(BV1JE411G71J),想当年被小学同学评价为无敌破战士(显然到现在都不知道这称号是 ...

  3. [C++] 井字棋游戏源码

    TicTac.h 1 #define EX 1 //该点左鼠标 2 #define OH 2 //该点右鼠标 3 4 class CMyApp : public CWinApp 5 { 6 publi ...

  4. 从井字棋程序总结C语言初学的知识

    #井字棋程序的可实现性以及实现思路# 目录 #井字棋程序的可实现性以及实现思路# 1.程序的可实现性 2.实现程序的思路 菜单界面 游戏主体 棋盘的显示 玩家下棋子 电脑随机下棋子 判断输赢 1.程序 ...

  5. 计算机井字游戏历史,1952年亚历山大·S·道格拉斯创作了井字棋电脑游戏

    扩展阅读: 延迟存储电子自动计算器(EDSAC)从1946年起在剑桥大学数学实验室开工,1949年5月6日运行首个程序,而到1958年7月11日时仍在使用. EDSAC体积占据整个房间,是最早的储存程 ...

  6. python编写井字棋_编写井字游戏

    python编写井字棋 Programming computer games may be the most technically challenging (and possibly the bes ...

  7. 深度强化学习入门:马尔可夫决策过程(井字棋案例理解)

    注:笔记 来自知乎文章 深度强化学习综述(上) Tips①:只是记录从这个文章学到的东西 Tips②:只摘选了文章中部分理论阅读整理 Tips③:重点是对文章中的一些公式进行理解,方便自己回顾 Tip ...

  8. [游戏学习22] MFC 井字棋 双人对战

    >_<:太多啦,感觉用英语说的太慢啦,没想到一年做的东西竟然这么多.....接下来要加速啦! >_<:注意这里必须用MFC和前面的Win32不一样啦! >_<:这也 ...

  9. LeetCode简单题之找出井字棋的获胜者

    题目 A 和 B 在一个 3 x 3 的网格上玩井字棋. 井字棋游戏的规则如下: 玩家轮流将棋子放在空方格 (" ") 上. 第一个玩家 A 总是用 "X" 作 ...

  10. python井字棋_用Python做一个井字棋小游戏

    井字棋是一个经典的小游戏,在九宫格上玩家轮流画OXO,当每列或每行或是两个对角成一线时便是获胜. 今天就用Python编写一个井字棋小游戏,与电脑对战. 程序执行画面如下图所示: 程序提供了两种人工智 ...

最新文章

  1. Contiki 2.7 Makefile 文件(一)
  2. Swift--逃逸闭包与非逃逸闭包(Swift3.1)
  3. idea中刷新项目快捷键_解决 IDEA 使用过程中让你觉得不爽的一些问题
  4. Http请求url参数字符集
  5. docker 外部连接_如何从主机外部(同一网络)连接到Docker容器[Windows]
  6. spring boot之从零开始开发自己的网站
  7. 史上最硬核文科生,擅长解决数学难题,却视考试成为终生噩梦
  8. Java实现Excel导入数据库,数据库中的数据导入到Excel
  9. python调用java文件_Python程序中调用Java代码的实践
  10. 万用表测试软件,最全的万用表使用方法看这里!
  11. HTML5+CSS大作业——端午节日(25页) 图片滚动
  12. Debian配置主机名,域名,网卡IP地址
  13. sqlserver导入sql文件的方式
  14. awk 分隔符 多个空格_awk多分隔符
  15. 程序设计基础课程设计——学生成绩管理程序
  16. 「源码解读」知名程序员 TJ 的 only 库
  17. linux全局查找字符串,linux全局搜索命令
  18. 汽车变速器测试系统ETest
  19. 强引用,软引用,弱引用,虚引用
  20. 修改ubuntu命令行前面的用户名

热门文章

  1. C/C++二路归并排序
  2. 阅读笔记——基于CART决策树的计算机网络课程学生成绩分析
  3. gini指数与cart 决策树
  4. 万能平板刷机软件_万能手机刷机软件下载
  5. java代码混淆 源代码保护 代码逻辑混淆 代码加密 支持JDK16
  6. 微信小程序访问外部链接
  7. 物联网设备通过MQTT接入华为iot平台
  8. 2018通达信l2服务器源码,很后悔购买了通达信L2看盘软件,大家不要再买进这个软件了...
  9. FMEA软件框图及接口功能库(FMEAHunter)
  10. sci论文 计算机,计算机类SCI论文