Jzoj3908 吳傳之火燒連營 (夢回三國系列)

2022-05-09 17:16:31 字數 1112 閱讀 9555

【題目背景】

蜀漢章武元年(221年),劉備為報吳奪荊州、關羽被殺之仇,率大軍攻吳。吳將陸遜為避其鋒,堅守不戰,雙方成對峙之勢。蜀軍遠征,補給困難,又不能速戰速決,加上入夏以後天氣炎熱,以致銳氣漸失,士氣低落。劉備為舒緩軍士酷熱之苦,命蜀軍在山林中安營紮寨以避暑熱。陸遜看準時機,命士兵每人帶一把茅草,到達蜀軍營壘時邊放火邊猛攻。蜀軍營寨的木柵和周圍的林木為易燃之物,火勢迅速在各營漫延。蜀軍大亂,被吳軍連破四十餘營。陸遜火燒連營的成功,決定了夷陵之戰蜀敗吳勝的結果。

【問題描述】

劉備帶兵深入吳境,陸遜卻避而不出,蜀軍只得在山林中安營紮寨。而劉備在紮營時卻犯了兵家大忌,將兵營排列成一條直線,遠遠看去,就像是一條串著珠子的鏈,美其名曰:鏈寨。如果吳軍將領是一般人,那麼這也許不算什麼,而陸遜何許人也,他可是江東才子,能力不低於周瑜的一代儒將。他看到劉備這樣排陣,心生一計,決定用火攻破陣。然而,火計除了要有風,選定引火點也非常重要,對於劉備的布陣,最佳引火點一定是n個兵營中的乙個。而因為風水輪流轉,每天的最佳引火點都不一樣。我們給每個兵營定下乙個固定不變的火攻值ai,每天定下乙個風水值k,對於每天的最佳引火點,顯然是所有兵營中火攻值與風水值異或的結果最大的那乙個兵營。然而,陸遜是個謹慎的人,他要觀察時機,在m天中選定乙個最佳的進攻的日期,為此他演算出了這m天每天的風水值,然後他希望你能夠告訴他這m天每天最佳引火點的兵營編號。

這題十分套路,就是trie,具體不多說了

#pragma gcc opitmize("o3")

#pragma g++ opitmize("o3")

#include

#include

#include

#define n 100010

using

namespace

std;

int s[n<<5][2],cnt=1,n,m;

void insert(int k,int pos)

s[x][0]=pos;

}int gmax(int k)

return s[x][0];

}int main()

for(int x,i=0;iscanf("%d",&x);

printf("%d\n",gmax(x));

}}

Jzoj3908 吳傳之火燒連營 (夢回三國系列)

題目背景 蜀漢章武元年 221年 劉備為報吳奪荊州 關羽被殺之仇,率大軍攻吳。吳將陸遜為避其鋒,堅守不戰,雙方成對峙之勢。蜀軍遠征,補給困難,又不能速戰速決,加上入夏以後天氣炎熱,以致銳氣漸失,士氣低落。劉備為舒緩軍士酷熱之苦,命蜀軍在山林中安營紮寨以避暑熱。陸遜看準時機,命士兵每人帶一把茅草,到達...

吳傳之火燒連營

題目描述 蜀漢章武元年 221年 劉備為報吳奪荊州 關羽被殺之仇,率大軍攻吳。吳將陸遜為避其鋒,堅守不戰,雙方成對峙之勢。蜀軍遠征,補給困難,又不能速戰速決,加上入夏以後天氣炎熱,以致銳氣漸失,士氣低落。劉備為舒緩軍士酷熱之苦,命蜀軍在山林中安營紮寨以避暑熱。陸遜看準時機,命士兵每人帶一把茅草,到達...

NOIP2014模擬11 1B組 吳傳之火燒連營

trie,動態開點。我們可以將輸入的a,b全部看成二進位制數。然後按照二進位制中的位置從大到小開始建trie。如果trie不會的可以自己手動普及一下。建好a的trie後,我們可以對於每個b i 開始求答案。答案可以說是貪心來求的。正確性可以保證。如果對於當前結點 1 只有乙個兒子,那就走那乙個兒子。...