水群的時候看到題了。挑點看上去能做的做做。
不保證做法對。
Problem 1.
求所有實數 \(\alpha\) 滿足:對任意正整數 \(n\),整數 \(\lfloor \alpha \rfloor + \lfloor 2\alpha \rfloor + \cdots + \lfloor n\alpha \rfloor\) 均為 \(n\) 的倍數.
sol: 別急。
Problem 5.
有一個遊戲,提供了一個 2024 行 2023 列的網格,上面恰有 2022 個壞人,且除了第 1 行和第 2024 行,每一行都恰有一個壞人;每一列都至多有一個壞人。你每次可以做一個嘗試:從第 1 行的任意位置出發,向有公共邊的相鄰格走一步(可以走到之前走過的位置),如果遇到壞人就結束嘗試。每次嘗試後你都有記憶,可以記住壞人的位置。當你走到第 2024 行的任意位置時,遊戲結束。
求最小的正整數 \(n\),使得無論壞人位置的分佈如何,都能確保你在最優策略下至多進行 \(n\) 次嘗試就能結束遊戲。
sol:怎麼大家都覺得這題挺簡單的,是不是也沒那麼簡單。
一開始想了一個 \(\log\) 級別的答案的構造,後來群友說答案是 3,給我直接幹碎了。解法是這樣:
考慮先找到第 \(2\) 行的壞人位置,這個好找。從 \((1,1)\) 出發,先走到 \((2,1)\) (如果這裡本身是壞人那就找到了),然後向右掃。假設壞人座標是 \((2, x)\).
-
$ 1 < x < 2023$ : 我們有一種想法:找到一種方式繞到 \((2, x)\) 的下面直接走到最後一行。用同樣的方法找到第 3 行的壞人 \((3, y)\). 不難發現無論 \(y\) 與 \(x\) 的關係如何,我們都有辦法構造一條路徑 \((1, k) \leadsto (2, k) \leadsto (3, k) \leadsto (3, x) \leadsto \cdots \leadsto (2024, x)\) ,原因就是因為 \((3, y)\) 只擋住了 \((2, x)\) 的一邊,只要找到一個數 \(k\) 滿足 \(k \neq x, k \neq y\) 且 \(k\) 在 \(y\) 相對於 \(x\) 的異側即可。因為 \(1 < x < 2023\),我們肯定能找到這樣的 \(k\)。這裡使用了 3 步。
-
\(x = 1\) 或 \(x = 2023\) : 不難發現這兩種情況是對稱的,接下來只討論 \(x = 1\)。我們可能還會考慮繼續找第 3 行的壞人位置,但是如果是 \((3, 2)\) 的話,局面似乎沒有化簡。這一次沒有任何用。然後第 4 行找到 \((4, 3)\) 啥的靠在一起,這個就毀了。然後我就在這邊做了些二分什麼的,得到 \(\log\) 做法。
這個顯然不夠牛啊,我們要向一個比較優秀的嘗試的方法,使得這一次嘗試能找到一個比較厲害的路徑和得到儘可能多的合法點(行,列)而且要聯通。
考慮如下構造:我們做一次嘗試:\((1, 1) \leadsto (1, 2) \leadsto (2, 2) \leadsto (2, 3) \leadsto (3, 3) \leadsto (3, 4) \leadsto \cdots\),每次一右一下走格線。如果沒碰到壞人那麼就遊戲結束;否則,假設我們碰到的壞人位置在 \(X\)。如果最後一次移動是向右(即圖中 \(X_1\))那麼我們第三次嘗試可以沿著上一次的路徑走到 \(X_1\) 前一步然後向左走到底,然後向下走到底。如果最後一次是向下(即圖中 \(X_2\))那麼我們第三次嘗試可以沿路徑走到 \(X_2\) 前兩步直接向下走一步,然後向左走到底,向下走到底。這裡可以看圖。(其實可以換一種想法,就是我目前的嘗試所發現的能走的點能否把第 1 行和第 2024 行聯通,圖中紅色所標的就是能走的點構成的連通塊)這樣我們也只需要 3 次。
似乎沒有更牛的構造了。\(n \le 2\) 不行怎麼證。