Codeforces 980B 題解報告

2021-08-19 20:43:23 字數 893 閱讀 3439

(一)本題考察對稱性

n = 5, k = 4時,以下兩種方案符合題意

..... 

.##..

.##..

.....

..... 

.#.#.

.#.#.

.....

以下一種方案不符合題。因為這種方案,從(1,1)到(5,5)有2條最短距離,從(4,1)到(1,5)有4條最短距離。

.....

.###.

.#...

.....

(二)考慮到四個邊不能放旅館,所以最多可放2 (n - 2)個旅館。題目中k的取值範圍為(0, 2(n - 2)。結果必然為」yes」,不可能是」no」

(三)無論旅館數量是奇數還是偶數,都能找到符合條件的放置方法。

k為偶爾時,放置方法有兩種:

(1)第二行和第三行的旅館對稱;

(2)旅館關於j = k / 2對稱

k為奇數時,放置方法為:

第二行的中間位置要放上旅館,然後往兩邊放;如果第二行不夠放,則繼續放到第三行,但是第三行的中間位置不能放(否則k會變成偶數)。

#include

using namespace std;

string str[5];

int main()

}if(k%2==0) // 偶數個旅館}}

else

// 奇數個旅館

}else

k -= (n-2);

for(int i=1;i<=k/2;i++)}}

}puts("yes");

for(int i=0;i<4;i++)

{cout<

codeforces 1352b 思路題很舒服

題意 輸入n和k,要求判斷有沒有k個偶數加起來能等於n,或是k個奇數加起來等於n,如果有還要分別輸出這k個數。思路 看看樣例,理解理解題意,我們很容易想到如果k n,那麼肯定會是no。只有當k n的時候才有可能出現yes。k n的時候就是輸出一列1了,那麼k減少就是一列1的組合,k n 1的時候肯定...

Codeforces 402B 恥辱的一題

這題昨天晚上花了我1個小時50多分鐘來搞,都沒有搞定。後來看別人 直接暴力列舉第乙個數的值來做。最多1000 1000的複雜度。當時怎麼就沒想到呢?還有為啥我的方法不對呢。暴力方法 include include include include include define mod 10000000...

codeforces1103B 二分互動題

手速場,半小時做完就開始掛機了。群裡有人提出了用v和2v去比較 然後我想起了曾經一道互動題是拿二進位制去試探,先加大的,再加小的,看行不行。這樣如果如果v a 2v a,那麼a 2v,如果輸出x,那麼v就可以確定a的上下區間,分別是v和2v。然後再去二分mid,每次輸出v和mid,找到v a當時寢室...