原创 HDU - 6610 Nim博弈+帶修莫隊

可以看出來兩人的遊戲是nim博弈 所以如果區間內的數異或和不爲0 那麼Alice 必勝   簡單分析一下我們肯定要做一個前綴異或  然後再莫隊就行  因爲Bob會對序列進行修改 所以我們需要用帶修莫隊   然後就變成一個板子題目了 帶修

原创 博弈論題目集 (持續更新)

巴什博弈  HDU 1846 1、  本遊戲是一個二人遊戲; 2、  有一堆石子一共有n個; 3、  兩人輪流進行; 4、  每走一步可以取走1…m個石子; 5、  最先取光石子的一方爲勝; 這個應該比較好推: 如果 n % (m+1)

原创 舞蹈鏈 模板

精確覆蓋 #include<bits/stdc++.h> using namespace std; const int N = 260000; inline int in(){ int x=0;char c=0; while(c

原创 codeforces E. Sum of Digits

這題可以暴力打本地表。。。  等正解出來再搞正解 對於k=0 我們讓9儘量多就行 這個可以特判 對於k=1 暴力打表到1e9 對於k>=2 暴力打表到1e6(發現1e6以上就沒有變化了) 當然這樣做純靠懵的 實在沒辦法了就這樣搞 #

原创 GYM 102220 problem H Skyscraper 樹狀數組

將近一年前寫的題目了 又翻出來看看 題目鏈接:H Skyscraper 思路:用線段樹維護差分數組  設b[i]=a[i]-a[i-1]   如果 bi<=0 說明在完成i-1時可以順便把i位置完成 如果 bi>0 說明完成i-1後至少

原创 CodeForces - 849E cdq分治

cdq分治的題 不過要先推出維度的關係 顯然想要得出一種數的答案 我們需要知道這種數在區間裏面出現的位置  最後的位置減去最前面的位置即可  但是我們無法很便捷的找到最後和最前的位置  卻可以找出所有出現的位置  設 pre[i] 爲i

原创 Codeforces Round #652 (Div. 2)

D. TediousLee 我們先處理一下葉子結點(ye)和1個兒子的結點(one)之間的關係  顯然       找規律題  觀察3號樹 4號樹和6號樹的關係  發現4號樹的葉子 在6號樹變成了“爪子” 每個爪子貢獻爲4  然後我們去

原创 計蒜客 ACM-ICPC 2017 Asia Xi

收錄兩題  還有大家千萬別用uva的題目來源 這oj真的垃圾 毀我青春 A1607   XOR   題意:給一個長度爲n的序列 給一個數k  每次詢問區間L,R  在L,R這些數中選一個子集  使得子集中的元素的異或和與k進行或運算

原创 P3674 小清新人渣的本願 莫隊+bitset 維護區間是否存在兩個數 相減、相加、相乘爲x

bitset都沒怎麼用過 這題恰好能熟悉一下 這題一看就是莫隊吧  然後如何看區間裏面是否有兩個數相減 或相加 或相乘爲k 先講相乘 因爲這個最簡單   我們直接暴力遍歷k的因子  如果 y和k/y 都在的話 那麼就可以  反正是帶根號

原创 P4113 [HEOI2012]採花 莫隊(個屁)or 樹狀數組

看着莫隊的標籤去寫的 結果發現數據加強了 根本卡不過  後來想了想發現沒什麼好辦法  看題解區 發現了一個樹狀數組的寫法 確實很有意思 題意:給一個序列 對於每個詢問區間 l~r 給出出現次數大於等於2的數的個數 我們知道樹狀數組離線可

原创 P4570 [BJWC2011]元素 線性基上貪心

n個物品,有編號和價值兩個屬性,如果多個物品之間編號異或爲0,那麼他們就會消失。求一個子集,使得總價值最大。 根據線性基的性質 假設我有3個物品的編號異或爲0,那麼這三個物品無論以什麼樣的順序插入線性基,最後一個一定是無法插入的,那麼有

原创 P3899 [湖南集訓]更爲厲害 樹狀數組離線二維數點

題意太長 不贅述 考慮如何去求三元組(a,b,c)   1.b是a的祖先  這個很好算 因爲a的每個兒子都可以作爲c  然後b和a的距離不超過k就行 顯然就是     2.a是b的祖先 這個纔是這題的難度所在   設tid[x]爲x的d

原创 牛客 吉林大學ACM集訓隊選拔賽 (重現賽)A 數位dp

被榜騙了 *** h題不是有手就會嗎 怎麼就那麼點人過啊  不過我還是補a 數位dp 很久很久以前寫過 不要62 不過忘得乾乾淨淨了  這題應該是數位dp裏面最簡單的那種吧  鏈接:https://ac.nowcoder.com/acm

原创 P6327 區間加區間sin和 線段樹

這題挺簡單的  不過錯的很玄學 用公式 sin(a+x)=sina*cosx+sinx*cosa cos(a+x)=cosa*cosx-sina*sinx就行 維護sinx的和和cosx的和更新就行了  需要注意的是常數比較大  三角函

原创 P4592 [TJOI2018]異或 樹上可持久化trie

樹上可持久化trie的板子 第一棵樹按照dfs序建立 第二棵樹按照遍歷順序直接在父節點的基礎上建立   空間開N*50 開個N*30wa了 也不re de了半天bug #include<bits/stdc++.h> #define