tictac 立体井字棋--数学问题
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 立体井字棋--数学问题相关推荐
- 【结论】立体井字棋(jzoj 2124)
立体井字棋 题目大意: 在一个n×n×n的正方体中,由n个格子连成一条直线的方案数(多少种可能用n个格子连成一条直线) 样例输入 2 样例输出 28 数据范围限制 对于30%的数据, n<=10 ...
- 用数学方法计算井字棋合法局面数——波利亚定理的简单应用
用数学方法计算井字棋合法局面数--波利亚定理的简单应用 0.前言 记不得那天在B站发现一个互动下井字棋智商普查(BV1JE411G71J),想当年被小学同学评价为无敌破战士(显然到现在都不知道这称号是 ...
- [C++] 井字棋游戏源码
TicTac.h 1 #define EX 1 //该点左鼠标 2 #define OH 2 //该点右鼠标 3 4 class CMyApp : public CWinApp 5 { 6 publi ...
- 从井字棋程序总结C语言初学的知识
#井字棋程序的可实现性以及实现思路# 目录 #井字棋程序的可实现性以及实现思路# 1.程序的可实现性 2.实现程序的思路 菜单界面 游戏主体 棋盘的显示 玩家下棋子 电脑随机下棋子 判断输赢 1.程序 ...
- 计算机井字游戏历史,1952年亚历山大·S·道格拉斯创作了井字棋电脑游戏
扩展阅读: 延迟存储电子自动计算器(EDSAC)从1946年起在剑桥大学数学实验室开工,1949年5月6日运行首个程序,而到1958年7月11日时仍在使用. EDSAC体积占据整个房间,是最早的储存程 ...
- python编写井字棋_编写井字游戏
python编写井字棋 Programming computer games may be the most technically challenging (and possibly the bes ...
- 深度强化学习入门:马尔可夫决策过程(井字棋案例理解)
注:笔记 来自知乎文章 深度强化学习综述(上) Tips①:只是记录从这个文章学到的东西 Tips②:只摘选了文章中部分理论阅读整理 Tips③:重点是对文章中的一些公式进行理解,方便自己回顾 Tip ...
- [游戏学习22] MFC 井字棋 双人对战
>_<:太多啦,感觉用英语说的太慢啦,没想到一年做的东西竟然这么多.....接下来要加速啦! >_<:注意这里必须用MFC和前面的Win32不一样啦! >_<:这也 ...
- LeetCode简单题之找出井字棋的获胜者
题目 A 和 B 在一个 3 x 3 的网格上玩井字棋. 井字棋游戏的规则如下: 玩家轮流将棋子放在空方格 (" ") 上. 第一个玩家 A 总是用 "X" 作 ...
- python井字棋_用Python做一个井字棋小游戏
井字棋是一个经典的小游戏,在九宫格上玩家轮流画OXO,当每列或每行或是两个对角成一线时便是获胜. 今天就用Python编写一个井字棋小游戏,与电脑对战. 程序执行画面如下图所示: 程序提供了两种人工智 ...
最新文章
- Contiki 2.7 Makefile 文件(一)
- Swift--逃逸闭包与非逃逸闭包(Swift3.1)
- idea中刷新项目快捷键_解决 IDEA 使用过程中让你觉得不爽的一些问题
- Http请求url参数字符集
- docker 外部连接_如何从主机外部(同一网络)连接到Docker容器[Windows]
- spring boot之从零开始开发自己的网站
- 史上最硬核文科生,擅长解决数学难题,却视考试成为终生噩梦
- Java实现Excel导入数据库,数据库中的数据导入到Excel
- python调用java文件_Python程序中调用Java代码的实践
- 万用表测试软件,最全的万用表使用方法看这里!
- HTML5+CSS大作业——端午节日(25页) 图片滚动
- Debian配置主机名,域名,网卡IP地址
- sqlserver导入sql文件的方式
- awk 分隔符 多个空格_awk多分隔符
- 程序设计基础课程设计——学生成绩管理程序
- 「源码解读」知名程序员 TJ 的 only 库
- linux全局查找字符串,linux全局搜索命令
- 汽车变速器测试系统ETest
- 强引用,软引用,弱引用,虚引用
- 修改ubuntu命令行前面的用户名