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

2021-09-10 23:09:16 字數 635 閱讀 7500

trie,動態開點。

我們可以將輸入的a,b全部看成二進位制數。

然後按照二進位制中的位置從大到小開始建trie。

如果trie不會的可以自己手動普及一下。

建好a的trie後,我們可以對於每個b[i]開始求答案。

答案可以說是貪心來求的。正確性可以保證。

如果對於當前結點:

1:只有乙個兒子,那就走那乙個兒子。

2:否則的話就按照與b[i]的這一位置上的0/1取反,並走那乙個兒子。

這樣子我們可以保證答案的最優性了。

上標:

#include

using namespace std;

int n,m,x,f[

2000010][

3],tot=1;

inline

intread()

void

insert

(int id,

int x)

f[now][2

]=id;

}int

find

(int x)

return f[now][2

];}int

main()

NOIP2014模擬11 1B組 蜀傳之單刀赴會

論壇中我的總結 這題用狀壓dp實現。我們先對於起點和終點,以及朋友家每個跑一遍spfa,將這些點定義為關鍵點,兩兩之間都求出了最短路,然後我們可以用狀壓dp來解決問題。我們可以設f i j 表示當前到達點i,走過朋友家的狀態為j的最短路。這是從1到n的!然後我們再設g i j 表示當前到達點j,走過...

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

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

NOIP2014提高組模擬題 8 9

一 最大配對 題意 給兩個序列,要求選k組,每組從兩個序列中各選乙個數,要使各組數的差的和最大。小論 兩個序列分別排序。每次用乙個序列的最大的減另乙個序列的最小的。當時情況 估計100分,結果50分。雖然題目有提醒答案可能超過2 31 1,我也看到了,但想著等下打完再改,於是我打著打著就忘了 最後掛...