~~~題面~~~
題解:神奇的貪心題,,,感覺每次做貪心題都無從下手。。。
我們首先按照a對所有卡片從小到大排序,然後從1開始,從連續的兩張牌中取b最大的,最後一張單出來的也取了。
可以證明,這樣的方案一定是合法的。
為什麼呢?
假設我們將排序後的牌按照(1, 2) (3, 4) ……這樣的方式兩兩分組,那麼既然我們每次都是取b最大的那張,b的限制顯然我們已經滿足了。
現在來考慮a,假設我們遇到了最壞的情況,在每一組裡面,我們都取到了a最小的那個,即我們取到了第1, 3, 5,……張牌(因為已經排好序了,所以a最小的一定是這些),那麼這個時候我們可以改變一下分組方式由原來的(1, 2) (3, 4) ……變成1, (2, 3), (4, 5) ……(2 * n, 2 * n + 1),那麼你可以發現,這時我們取的牌就變成了任意組當中a最大的那張,因此a也是滿足條件的。
證明完畢。
1 #include2view codeusing
namespace
std;
3#define r register int
4#define ac 21000056
intn;78
struct
cards[ac];
1112 inline bool
cmp(card x, card y)
1316
17 inline int
read()
1824
25void
pre()
2633
34void
work()
3542 printf("
%d\n
", s[2 * n + 1
].id);43}
4445
intmain()
46
Hihocoder 數列問題
給定乙個長度為n數列a a1,a2,an a 1,a 2,a n a1 a2 an 由於某種原因,小ho對這個數列有些不滿意。他希望每個在數列 現的數值,其出現的次數都是唯一的。假設a 1,1,2,2 1和2都出現了2次,小ho就會不滿意。於是小ho決定從a中刪除一些數,使得每個數值出現次數都是唯一...
hihocoder 字尾陣列
時間限制 5000ms 單點時限 1000ms 記憶體限制 256mb 描述小hi平時的一大興趣愛好就是演奏鋼琴。我們知道乙個 旋律被表示為長度為 n 的數構成的數列。小hi在練習過很多曲子以後發現很多作品自身包含一樣的旋律。旋律是一段連續的數列,相似的旋律在原數列可重疊。比如在1 2 3 2 3 ...
HihoCoder 跑馬圈地
原題鏈結 問題 在乙個m n的矩形中,圈出一塊最大周長為l的連續區域,滿足區域面積盡可能大,同時區域邊界不能落入內部特定的矩形內。分析 1 當周長固定時,圍成正方形覆蓋的面積最大 2 考慮到矩形的對稱性,內部矩形位置 陰影區域 可表示為如下圖所示形式,即滿足 s1 s3 且 s1 s2 且 s3 s...