原创 線段樹——BZOJ1858/Luogu2572 [SCOI2010]序列操作

題面:Luogu2572 BZOJ1858 (傻逼)題? 我不會告訴你我寫了調了一個晚上才A掉。。。(逃 思路真的挺簡(sha)單(bi),其實就是線段樹維護區間和,區間最長連續段。 但是細節實在太多。。。代碼太難寫。。。

原创 斜率優化DP——BZOJ1010/Luogu3195 [HNOI2008]玩具裝箱TOY

題面:Luogu3195 BZOJ1010 本來以爲斜率優化是個什麼高級東西。。。這題入門之後…… 發現也沒什麼難的吧 O(n2) 做法: f[i] 表示選完1~i個物品所花最小花費 轉移:f[i]=min(f[j]+(

原创 位運算貪心——BZOJ3668/Luogu2114 [Noi2014]起牀困難綜合症

題面:Luogu2114 BZOJ3668 既然都是一堆位運算了,我們按位來搞好了 一個很顯然的貪心策略,高位選0對接下來選擇更有利 所以我們直接按位從高到低貪心,計算這一位是0或1對答案的貢獻,如果選1貢獻大於0,選1,否

原创 暴力+map——Codeforces831C Jury Marks

題面:cf831c 簡要題意:給出k個數a[i],給出n個b[i],每個b[i]值爲a[1]+a[2]+…+a[不知道位置]+某一未知初始值(每種情況初始值是一樣的),求可能的初始值有多少 n<=2000 ,直接暴力即可 我們

原创 二進制亂搞——Luogu3917 異或序列

題面:Luogu3917 我的做法好像比較傻。。。 看到這種題首先想到前綴。首先前綴xor是不是很資辭? 我的做法呢就是先把所有數按二進制位拆開,然後每一位都做兩次前綴。 首先對數位做一次前綴xor,記到s 數組裏,再對s

原创 Floyd+最大流——Luogu2402 奶牛隱藏

題面:Luogu2402 好題,二分+最大流 看到這種題嘛直接做啊,首先Floyd求出兩兩之間最短路,然後我們考慮二分這個時間T ,接着建圖 這個圖啊首先把每個點拆成牛和棚,超級源點s 向每個點的牛連流量爲牛數的邊,每個點的

原创 歐拉回路+無極卡常——51nod1967 路徑定向

題面:51nod1967 辣雞出題人卡邊表差評。。。 卡常數卡啊卡交了35發才過QAQ 當然底下還有,反正佔了兩頁 本題的主題思路就是求一個歐拉回路,我們把有向圖暫時先看作無向圖 首先第一問其實就是度爲偶數點的個數

原创 DP——51nod1020 逆序排列

題面:51nod1020 雖然這是5級題的第一個題目,但是作爲這種水平的DP的話…… 真的好神啊!!!(我貌似從來沒有做過這種推狀態轉移方程的。。。 首先狀態就是f[i][j] 表示前i個數的排列逆序數的個數 從i−1 推

原创 數論——51nod1188 最大公約數之和 V2

題面:51nod1188 emmm就是前一道題的升級版了。。。 首先建議去看一下我的前一篇題解:傳送門。前一篇題解(就是“最大公約數之和”)是這篇題解的基礎 首先一維變成了兩維,我們還是可以按照原來的思路來做。 上一篇講到

原创 主席樹維護dfs序——BZOJ3653/Luogu3899 談笑風生

題面:BZOJ3653 Luogu3899 被luogu難度等級騙了。。。 首先看到子樹的題就是dfs序了,我們用L[i] 表示i的初訪問戳,R[i] 表示i的末訪問戳 我們設size[i] 表示子樹大小(不包括i),dee

原创 暴搜——51nod1400 序列分解

題面:51nod1400 真的是大暴力 有人說直接暴搜加一個小剪枝就能過。。。 我的搜索策略有點奇怪 先講一個錯誤的貪心: 我們開個數組q[i]記錄一個子序列的狀態 用一個指針p表示另一個子序列目前匹配到q[i]的第幾

原创 Trie+拓撲排序——Luogu3065 [USACO12DEC]第一!First!

題面:Luogu3065 我們首先考慮一種情況,如果某一字符串的某個前綴是另外一個字符串,這個字符串不可能字典序最小。 所以我們來考慮相同前綴的問題。如果某一字符串字典序最小,和它同前綴的字符串的相同前綴之後一位字母的大小順序

原创 Trie——Luogu3879 [TJOI2010]閱讀理解

題面:Luogu3879 一開始我感覺好像可以用set搞一搞的 然後發現迭代器我實在不太會用。。。 而且到底set怎麼存我也不大有數 後來想了想,還是Trie靠譜 就是在結束標記記錄一下這裏有多少文章有這個單詞就好了

原创 異或——LibreOJ6087 毒瘤題/LibreOJ6232 毒瘤題加強版

題面:loj6087 我是不會告訴你SW_Wind(就是那個小江)是我同學嘿嘿嘿。。。 然而題好像是一個叫做SHENZHEBEI的dalao(也是我同學)出的。。。 首先xor有個性質,一個數被xor兩次之後等於0 所以k

原创 貪心+線段樹(優先隊列)——51nod1191 消滅兔子

題面:51nod1191 哈哈哈……腦回路清奇 首先我們可以很快想到貪心,我們把兔子的血量從大到小排序,箭按照傷害值從小到大排序,那麼我們就可以先做血量多的兔子,這樣就可以爲血量少的兔子留出箭了 因爲數據範圍有5W,所以可以