結論 立體井字棋(jzoj 2124)

2021-09-10 07:10:34 字數 999 閱讀 6179

在乙個n×n×n的正方體中,由n個格仔連成一條直線的方案數(多少種可能用n個格仔連成一條直線)228對於30%的資料, n<=10;

對於100%的資料, n <= 1000。這道題很顯然是一道推理題,他有兩種方法,我們先講一下眾多人使用的方法一:

首先我們在這個方形外面圍上一層正方形(如下圖),因為長度兩邊都加了一,多以大正方形的體積是(n+

2)3(n+2)^

(n+2)3

,而紅色部分,原來的正方形體積為n3n^

n3,就可以求出外面圍了(n+

2)3−

n3(n+2)^-n^

(n+2)3

−n3個正方形,然後運用兩點確定一條直線的定理,還有把符合題意的每一條線延長可以穿過外面的兩個正方形,可以得知符合題意的正方形個數為(n+

本蒟蒻使用的方法二:

把全圖的線的種類分為三種(只有乙個座標的差異,兩個座標的差異,三個座標的差異),然後又可以細分:第一種:從正面,左面,上面各分成4個(n×n個),總共3×n×n個,第二種:從正面兩個45度角,側面兩個,上面兩個各有n個,總共6n個,第三種:是四個斜對角,就4個

總共3 ×n

×n+6

n+43×n×n+6n+4

3×n×n+

6n+4

#include

#include

using

namespace std;

int n;

intmain()

JZOJ 立體井字棋

乙個公升級版的三子棋 我的三子棋 立體n nn子棋,輸入n nn,輸出有多少種擺法使n nn個子連成一線 樣例輸入2樣例輸出28如果把每一條直線向外延伸,然後在每一條延長線 兩邊各加上乙個立方體 就代表兩個立方體代表一條直線 那麼額外加的立方體就直接把之前邊長為n nn 立方體包圍了起來,就代表只要...

python井字棋 用python井字棋

上篇文章 python 井字棋 文本版 上 電腦端下棋策略是隨機的,有哪些位置可下棋,就隨機選擇乙個位置 實際中是不存這麼傻的對手的,賦予電腦乙個正常的智商還是很有必要的 至少當對手下一步要贏了,我們應該馬上堵住哪個位置 如果電腦自己能贏了,那就應該下能夠贏的位置 如果雙方都贏不了,那就找乙個比較好...

井字棋遊戲

三連棋遊戲 兩人輪流在印有九格方盤上劃 或 o 字,誰先把三個同一記號排成橫線 直線 斜線,即是勝者 程式提供隨機演算法和智慧型演算法兩種ai,隨機演算法使用隨機數隨意選擇棋盤上的位置,智慧型演算法通過對每隔落子位置權重的計算,選取最優的落子點。include include include inc...