原创 後綴數組學習和經典題

模板 其中 build_sa的部分和getheight的部分都是將原字符串經過最後一個字符爲0的處理後的模板,求rmq和lcp的部分還未檢驗。 #include<iostream> #include<cstdio> #include<q

原创 2019牛客第二場補題(F/H)

F. 把2*n個人分成 兩個人數相等的隊伍,每兩個人之間都有一個競爭值,當分成兩個隊伍後,兩個隊伍之間的競爭值之和最大爲多少 做法: 對每個人進行搜索將它放在a或b隊裏,每放一個人就計算一下當前的競爭值,這樣往後搜索的時候就可以利用一下前

原创 max answer 和 牛客多校第四場C

max answer 題意:給出一組數,求一個區間(l,r)中所有數之和與這個區間的最小數之積最大 做法:對於每個數a[i], 我們可以求出滿足a[i]是最小數的 合法區間左邊界l[i] 和 右邊界r[i]; 然後對於每個a[i]接下來我

原创 2019杭電多校第一場題解

1004 題意: 給你n+1輛車的車頭距離終點的位置和車身長度, 以及每輛車的初始速度, 車子不會加速,當遇到前面一輛車的時候車子會瞬間減速並且和前面一輛速度相等,並且通過了終點線的車輛並不會停下來會繼續行駛,問第0輛車的車頭到達終點線所

原创 Educational Codeforces Round 69 D

題意: 求       做法: 可以發現 在m,m*2,m*3 長度的區間內的K是 相等的分別爲k ,k*2,k*3  所以我們可以在餘數爲0~m-1 的位置枚舉起點, 然後以每個點作爲終點求出cost 然後每到達一個可能爲新的起點 維護

原创 2019牛客第三場(D/F)

D.Big Integer 題意:  當1<=p,n,m<=1e9時 求有多少對滿足  做法: 考慮                  則            則         Case1(p不爲2,5,3) 然後由歐拉定理當p和10

原创 2019牛客多校第四場A/K

A.給你一張n個點n-1條邊的圖,和k個關鍵點。求一個點到所有關鍵點距離最大值的最小爲多少。 乍一看像是對答案二分,但是考慮兩個相距最遠的關鍵點,假設他們的距離爲d,那麼答案肯定爲(d+1)/2 如果有一點到中心點的距離超過了(d+1)/

原创 codeforces Round#563 D

http://codeforces.com/contest/1174/problem/D 任意的兩子段異或和 的 異或 等價於 任意兩個 前綴異或和  si 和 sj , si≠sj 並且 si^sj≠x  也等價於 si只能出現一次 s

原创 ACM ICPC 2008–2009, Northeastern European Regional Contest St Petersburg –Problem J(補題)

題意就是給你很多個字符串, 讓你找到一種大寫字母的替換方式,使替換後的每個字符串的字母爲元音字母和輔音 字母交替出現。求出替換後的字符串。 比賽的時候沒有明確的想法 以爲必須要O(n)的算法(果然該暴力還是要暴力) 賽後看題解, 枚舉每個

原创 歐拉篩(線性o(n)複雜度求出1~n的所有素數)

#include<cstdio> #include<iostream> #include<cstring> using namespace std; const int maxn=1000005; const int maxl=1299

原创 Contest Hunter 4301 Can you answer on these queries III (單點修改+查詢區間最大子段和)

根據lyd 的模板,我們只需要在每次更新信息的時候 同時維護 t[p].sum=t[p*2].sum+t[p*2+1].sum; t[p].lx=max(t[p*2].lx, t[p*2].sum+t[p*2+1].lx); t[p].r

原创 Buy Tickets POJ - 2828 (樹狀數組+二分)

大意:讓你給你n個 點的值和他們的插入位置 問你在依次插入完後 輸出最後的序列 似乎用鏈表可以實現(但是我太菜了並不會鏈表只能用高貴的樹狀數組了~~~~(>_<)~~~~ ) 首先 對於這種後面的點對前面的點可能有影響 的題最後一個點 一

原创 A Simple Problem with Integers POJ - 3468 (樹狀數組實現區間修改+區間查詢)

題意:  給長度爲N 的數列A, 輸入Q行操作指令, C l r d  表示 把數列中第l~r 個數都加d Q l r  表示詢問數列中第l~r 個數的和。 這明顯是線段樹的操作。。但是鹹魚的我 想用樹狀數組 (吃飽了沒事幹) 首先對於區

原创 2018 青島復現賽J - Books ZOJ - 4067

https://cn.vjudge.net/problem/ZOJ-4067 題目大意一共n本書,要從前往後取m本,如果當前手中的錢比第i本書大,就一定要買下來,然後減去這本書的錢繼續從前往後買。 求出初始最大可能的錢的數量,如果是無限的

原创 優先隊列用法

1.priority_queue<int>q     從大到小 2.priority_queue<int , vector<int> ,greater<int> >q 從小到大 或者 自定義優先級 struct cmp {  operat