原创 [CTSC2008]網絡管理Network【樹狀數組+主席樹】

題目鏈接 題意:有一棵N個點的樹,每個點有對應的權值,現在有這樣的操作,“0 a b”將a點的權值改成爲b,“k a b”詢問a到b的鏈上第k大的權值是幾。   我們可以用dfs序的樹上差分的方式來解決這個問題,可以發現,求u到v的信息,

原创 [USACO14DEC]Cow Jog G【最長反鏈性質】

題目鏈接   求的是跑了T分鐘之後的情況,要求是每個跑道都沒有被超越現象,問最少的跑道需求數量。   很明顯的就是求一個反鏈的偏序問題,我們倒過來看,求最長不降序列,於是就可以用樹狀數組來進行查詢了。 #include <iostrea

原创 A + B Problem 【LibreOJ - 6158】【exkmp/後綴數組DC3】

題目鏈接   本題我們可以考慮成從後往前的匹配,因爲要讓後綴最多的爲0,不妨就是從後往前按照需求的進行匹配即可,這個很好想,就是細節有點多了。   先是講講後綴數組的做法,這裏不能用倍增的後綴數組,因爲還要帶一個log,這樣要是寫的不好可

原创 River Jumping【貪心+模擬】

題目鏈接   我們可以貪心的從前往後,每次選最接近的且滿足條件的這樣的貪心,然後從後往前的時候,就是直接用倒着一個個判斷是否合法即可。 #include <iostream> #include <cstdio> #include <cm

原创 [USACO15FEB]Censoring S【KMP+單調棧】

題目鏈接   我們要讓S串去刪除T串,且不斷的刪除存在過的T串,所以就是可以用一個單調棧維護一個存在的串,然後因爲可能存在刪除,所以我們要記錄每一位的最大匹配個數。 #include <iostream> #include <cstdi

原创 Plants vs. Zombies【二分答案】

題目鏈接   題意:有N盆花,現在有一個澆花機器人,當它走到一個花盆面前的時候,可以給該花澆對應的a[i]的權值的防禦值(植物大戰殭屍嘛),然後呢,機器人一共可以走M步,問最後防禦權值最小的花的最大權是多少,最小值最大問題。(機器人一開始

原创 Two Divisors【GCD數論】

You are given nn integers a1,a2,…,ana1,a2,…,an. For each aiai find its two divisors d1>1d1>1 and d2>1d2>1 such that gcd

原创 簡單的字符串操作【SCPC 1082】【string的深刻認知+模擬】

題目鏈接 Description 衆所周知,字符串是不會在區域賽之類的比賽中出現的 但是爲了鍛鍊大家處理字符串的能力 讓大家多一個沒有用處的能力(bushi 給定n個字符串(從1開始編號),每個字符串中的字符位置從0開始編號,1≤leng

原创 HDU - 5618 【CDQ分治+樹狀數組求解三維偏序】

題目鏈接   T組測試,有N個點然後給出每個點的三維座標,然後求每一位座標都小於等於它的點的數量有多少個。   簡單的三維偏序問題,但是需要注意的是,完全相等的情況,所以一開始的時候預處理一下即可。 #include <iostream

原创 Arpa’s overnight party and Mehrdad’s silent entering 【CodeForces - 741C】【構造+染色】

題目鏈接   題意:有N對情侶,他們要圍坐在一個2N大小的圓桌一塊喫飯,有這樣的要求,情侶兩人必須有一個人得要喫好喫的食物,另一個人喫不好喫的,也就是一個人喫食物1,另一個人喫食物2,並且圓桌上任意連續3個人的食物必須不完全相同,也就是不

原创 棋盤遊戲【51nod 1327】【DP+組合數學】

題目鏈接   首先要先強調,排列A(0, 0) = 1,被這個卡了半天。   然後講一講關於這道題的思路,一開始想的方向是先完美匹配之後再去找增廣路,但是發現一點增廣路可以確定的是被替換,但是不能確定的是方案數,於是,肯定就該利用dp思想

原创 Guessing Camels 【Gym - 101485G】【CDQ+樹狀數組求解三維偏序】

題目鏈接 題面   有三個人在賭駱駝,駱駝的標號是1~N,但是這三人無聊,他們想知道他們賭的駱駝中有幾對駱駝是相對位置相同的,什麼是相對位置相同?就是譬如駱駝A和駱駝B,在三個人的紙條上都是A在B的前面,那麼就代表了相對位置是相同的了。

原创 Swaps Again【CF 1365 F】【思維+貪心】

題目鏈接   題意:有長度爲N的2個數組a、b,我們可以對a數組進行無數次操作,問a數組最後可不可以等於b數組?對a數組的操作是,我們可以選擇前K個和後K個交換位置,要求是。   思路:因爲是前K個和後K個的交換位置,我們想先從對稱軸開始

原创 [BJOI2017]樹的難題【點分治+線段樹】

題目鏈接   很容易想到的是,我們可以對首先對每個點連出去的邊按照邊顏色進行排序,這樣就可以保證一段相同的是會在一起出現的,然後我們可以進行點分治,再利用線段樹維護深度對應的最大權,我們需要兩棵線段樹,一棵維護不同值,一棵維護相同值,另外

原创 Gentle Jena【2020 年 “聯想杯” G題】【笛卡爾樹/單調棧】

題目鏈接   題意:給你N個數,b[1]~b[n],但是不是一開始就給出的,一開始只給出b[1],後面的都是通過前面的情況得到的,給出p、x、y、z和b[1],p、x、y、z都是涉及b[2]~b[n]怎樣來的,我們定義一個B(S), 還有