CodeForces - 894B Ralph And His Magic Field(组合数学+思维)
生活随笔
收集整理的這篇文章主要介紹了
CodeForces - 894B Ralph And His Magic Field(组合数学+思维)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目鏈接:點擊查看
題目大意:給出一個 n * m 的棋盤,需要在棋盤內填充數字,使得每一行、每一列的乘積都等于 k,問有多少種方案
題目分析:因為 k 只可能是 1 或 -1,所以在棋盤內填充的數字無非也只有兩種
首先需要特判一種特殊情況,就是 n 和 m 的奇偶性不同,且 k 為 -1,此時我們假設 n 為奇數,m 為偶數。因為 k 為 -1,所以每一行、每一列 -1 的個數必須為奇數個才行,所以對于行來說,共有(奇數 * 奇數)個 -1,而對于列來說,共有(奇數 * 偶數)個 -1,相互矛盾,故此時的答案為 0
剩下的情況肯定都是有解的了,具體想法如下,每次可以空出來最后一行和最后一列的元素先不填,然后讓剩下的 ( n - 1 ) * ( m - 1 ) 個格子隨便填充,最后用最后一列和最后一行來中和 -1 的個數即可,可以證明這是可行的且只有唯一一種情況與其對應
所以最后答案就是?
代碼:
?
?
超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生總結
以上是生活随笔為你收集整理的CodeForces - 894B Ralph And His Magic Field(组合数学+思维)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CodeForces - 487B St
- 下一篇: CodeForces - 817F ME