原创 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