牛客 筱瑪的迷陣探險 (trie 折半搜尋)

2021-10-05 18:31:10 字數 1472 閱讀 9196

最大異或的通解——轉換成trie問題

暴力dfs情況,我dp跑達到1e11,哪肯定不行,我們只需要考慮對角線的情況,每個位置的最大計數為1e5,左上情況構造trie,由下情況貪心查詢trie即可

起點(1,1,),終(n,n),尋找一條路徑從起點到終點的異或和再異或e最大的值。

//#pragma gcc optimize(2)

#include

//typedef long long ll;

#define ull unsigned long long

//#define int long long

#define f first

#define s second

#define endl "\n"

//<#define eps 1e-6

#define base 131

#define lowbit(x) (x&(-x))

#define pi acos(-1.0)

#define inf 0x3f3f3f3f

#define maxn 0x7fffffff

#define inf 0x3f3f3f3f3f3f3f3f

#define ferma(a,b) pow(a,b-2)

#define pb push_back

#define all(x) x.begin(),x.end()

#define memset(a,b) memset(a,b,sizeof(a));

#define ios ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);

using

namespace std;

void

file()

const

int n=

1e5+5;

int sca[20]

[20],n,e,ans;

int son[20]

[n*32][

2],pos[20]

;void

insert

(int tag,

int num)

}void

query

(int tag,

int num)

ans=

max(ans,sum);}

void

dfs1

(int x,

int y,

int v)

void

dfs2

(int x,

int y,

int v)

signed

main()

牛客練習賽37 C題筱瑪的迷陣探險

牛客練習賽37 c題筱瑪的迷陣探險 ps 需要前置技能 dfs和字典樹 二分dfs 分別從 1,1 和 n,n 開始走n步,會發現無論如何走最後都會到達對角線上 找出對角線上對應的每個可能結果,開倆個陣列,分別存在倆個陣列中,在對應的點上的集合上,乙個插入到字典樹中,另乙個查詢和它異或最大的數。in...

牛客練習賽49 筱瑪愛線段樹 思維

太久沒做題了,看著有牛客就打了一場,果然自閉 題目大意也很明確,給定乙個長度為n,初始全為0的樹組。給定以下兩種操作 思維退化太快。開始老是想著建乙個可持久化的,或者怎瞎搞,發現複雜度都降不下來。後來絕處逢生,想到了將所有的操作倒著做,記錄每乙個操作被後面的操作總共引用了多少次,完美解決。複雜度也能...

牛客練習賽B題 筱瑪的排列(找遞推規律)

筱瑪的排列 時間限制 c c 1秒,其他語言2秒 空間限制 c c 524288k,其他語言1048576k 64bit io format lld 筱瑪是乙個快樂的男孩子。筱瑪在一次數學考試中看到了這樣一道題 求有多少個長度為 n 的不同的排列 a,滿足對於任意的 i 均有 a a i i n 1...