洛谷 P2348 題解

2022-05-27 14:51:11 字數 889 閱讀 8404

本題解同步於我的洛谷部落格

本題思路:模擬。

首先我們容易發現,因為每位玩家至少需要 \(4\) 張牌,所以如果 \(k < n \times4\),那麼輸出無解。

然後我們可以看出,這道題的主要部分是在洗牌上。

於是我們觀察洗牌後的順序:

b[1] = a[k / 2 + 1];

b[2] = a[1];

b[3] = a[k / 2 + 2];

b[4] = a[2];

...b[k - 1] = a[k];

b[k] = a[k / 2];

//其中 b 為洗牌後牌的花色,a 為洗牌前牌的花色

可以看出(其中 a 為洗牌前牌的花色,b 為洗牌後牌的花色):

\[b_i = a_ + \lceil } \rceil} (i \ \bmod 2 == 1)

\]\[b_i = a_} (i \ \bmod 2==0)

\]所以,我們就可以模擬 \(m\) 次洗牌,然後再 \(o(k)\) 發牌。

時間複雜度為 \(o(mk)\)。

ac **:

#include #include #include #include using namespace std;

int n, k, m, p;

struct sgs c[100010], d[100010];

int main()

for(int j = 1; j <= k; j ++) c[j] = d[j]; //每次洗完牌要更新原陣列

} for(int i = 1, tot = 0; i <= k, tot < 4; i ++)

} return 0;

}

洛谷 P1101 題解

這道題可以用深搜 回溯 來寫,相信大部分人都是這麼想的,但是有些人可能在一些地方饒了半天,所以這裡就貼一下我的思路,個人覺得自己的很好懂,除了tx和ty那裡,但是tx和ty的那種用法對於輸出路徑的題目一般很實用 這個算是比較簡單的吧,題目裡給出了具體要找的字串,我們要做的就是對它進行8個方向的搜尋,...

洛谷 P1169 題解

請你在乙個黑白矩陣中選出乙個長方形 含正方形 和正方形的子矩陣,使得所有相鄰的點顏色不一樣。矩陣大小 兩條邊都 2000 2000 2 000輸入 3 31 0 1 0 1 0 1 0 0輸出4 6解釋給定矩陣 正方形 長方形 我的控制台是萌萌噠 ffc0cb粉色 乙個小技巧 如果您的控制台是像我的...

題解 洛谷 P3332

題目描述 權值線段樹套線段樹板子題 首先觀察題目,判斷為二維偏序問題 操作1為區間修改,所以一定是外部線段樹維護權值,內部線段樹維護所在區間,否則時間複雜度 qwq 為方便查詢,雜湊時我採用雜湊每個數的相反數的方法將求第k大轉換為求第k小 詢問可以直接想到的做法就是二分答案,查詢1 ans在區間內的...