洛谷 P1999 高維正方體

2021-10-02 09:47:47 字數 2797 閱讀 5578

首先這是個玄學的題目,很多人想到了楊輝三角,但是我太菜了於是沒有想到,用了另一種方法得出了正確的式子,先寫下式子好了。

求n維下m維的數量:

a ns

=cnm

×2n−

mans=c_n^m\times 2^

ans=cn

m​×2

n−m我這個蒟蒻推了一節數學課才推出的結論

先來點簡單的

我們生活在3維世界,很難想象出4維或4維以上世界是什麼樣的,但我們知道,2維可以用xy座標表示,3維可以用xyz座標表示,那n維就可以用n個數表示座標,n維體就是由一些座標構成的圖形,那麼座標的數量就是0維的數量。

舉個例子,二維可以表示4個座標,分別是(0,

0),(

0,1)

,(1,

0),(

1,1)

(0,0),(0,1),(1,0),(1,1)

(0,0),

(0,1

),(1

,0),

(1,1

),三維就是(0,

0,0)

,(0,

0,1)

,(0,

1,0)

,……,

(1,1

,0),

(1,1

,1

)(0,0,0),(0,0,1),(0,1,0),……,(1,1,0),(1,1,1)

(0,0,0

),(0

,0,1

),(0

,1,0

),……

,(1,

1,0)

,(1,

1,1)

,四維就是(0,

0,0,

0)

(0,0,0,0)

(0,0,0

,0)等編者好懶,不難發現,每個座標只有0,1

0,10,

1兩種,很容易想出n

nn維里0

00維的個數,就是2

n2^n

2n當然如果a>=b就需要特判了啊

開始正文

觀察座標,以3

33維為例,他的1

11維怎麼表示呢?很容易想到,如果兩個點的座標中只有乙個不相同的數,那麼這兩個座標間可以連一條1

11維的線。

二維呢?還是考慮連線,所以想表示乙個2

22維怎麼做?那就是連線對角線!

乙個對角線一定能對應乙個且僅乙個2

22維圖形。對角線兩個端點的座標的性質,是有兩個數不同:原因很簡單,舉個例子,左上到右下,有2

22個不同因素:左右,上下;那麼三維可以考慮出就多了個前後,從而推出m維就有m個因素。

那麼對於n

nn維圖形,從2

n2^n

2n個點出發可以尋找像這樣可以表示乙個m

mm維圖形的線段。

於是轉化並簡化問題:從座標角度想,你有乙個n

nn個0

00組成的排列,問有多少含有n

nn個數且有m

mm個1

11和n−m

n-mn−

m個00

0的排列。

輕鬆得出

a ns

=cnm

×2

nans=c^m_n\times 2^n

ans=cn

m​×2

n 誒怎麼和上面的式子不太一樣

然後就產生疑問了,2

22維圖形可以右下−

-−左上,左上−

-−右下,右上−

-−左下,左下−

-−右上,同乙個二維圖形重複計算4

44次!那麼我們考慮下,n

nn維下的m

mm維會重複計算多少次,考慮m=3

m=3m=

3,從整個三維圖形的每個點都可以向對應點發射線段,乙個三維圖形被重複了2

32^3

23次(也就是三維的點的個數次),考慮2

22維,也是從每個點數到對面都有一條線,重複2

22^2

22次,推理出m

mm維時,這個操作將重複2

m2^m

2m次,從而得出最終的式子:

a ns

=cnm

×2n−

mans=c_n^m\times 2^

ans=cn

m​×2

n−m至於求cnm

c^m_n

cnm​

需要的逆元這裡不多說了,很多大佬寫過求逆元的部落格,有事問度娘。

這是第一次寫題解所以可能有點囉嗦,見諒

#include

#include

#include

typedef

long

long ll;

ll ans,a,b,inv[

10000001];

const ll mod=

1000000007

;using

namespace std;

intq_pow

(ll a,ll b)

return an;

}int

main()

ans=

q_pow(2

,a-b)

; inv[1]

=1;for

(ll i=

2;i<=

100000

;i++

)for

(int i=

1;i<=b;i++

)printf

("%d"

,ans)

;}

洛谷P1999 高維正方體

這題挺有意思的 考慮起來有點麻煩 首先 n 維空間的點數 為 2 n 因為每往外延伸一條邊 就多出兩個點 然後考慮遞推 設 f 表示 i 維空間內 含有 j 維空間的個數 從 3 維空間開始推 f 8 因為 2 3 8 前面已經得出了 f 12 因為每個點可以延伸出 3 條邊 每條邊連著 2 個點 ...

洛谷P1999三國遊戲

題目 仔細想想,兩方都拿不到每個武將的配對中最大的 本來想的是如果有武將a,b,對應最大ma,mb,次大ca,cb,那麼自己選了a,電腦選了mb,接下來自己選b,若mb但仔細一想,這樣還不如第二步去選ca.所以自己只要設計一下,選到次大武將中最大的一組,就必勝了。如下 include include...

洛谷 P1387 最大正方形

題目描述 在乙個n m的只包含0和1的矩陣裡找出乙個不包含0的最大正方形,輸出邊長。輸入輸出格式 輸入格式 輸入檔案第一行為兩個整數n,m 1 n,m 100 接下來n行,每行m個數字,用空格隔開,0或1.輸出格式 乙個整數,最大正方形的邊長 輸入輸出樣例 輸入樣例 1 4 4 0 1 1 1 1 ...