原创 2020 年 “遊族杯” C.Coronavirus Battle 三維LIS

好菜啊 寫個近乎板子的題寫了個把小時   這題看題意就知道最後的答案是求 ans[i] 表示以i點結尾的最長lis的長度   數據是隨機的大概率不會有重複的點  但是爲了保險我還是去了一下重  z這一維由於要用樹狀數組 我就離散了一下

原创 CF Round #643 (Div. 2) E - Restorer Distance

大佬說是三分裸題 於是我補了一下 確實挺裸的 關於高度 顯然是有一個cost 的峯值函數的 於是我們三分一個高度 然後進行計算 記住計算的時候 要注意一個貪心 就是 當M<A+R的時候 我們先進行M操作  #include<bits

原创 HDU - 5790 Prefix 求區間不同種數的變形

我們先看一個簡單的問題 給你一個數組 q次詢問  每個詢問 給l和r  問區間l到r有多少種不同的數  這個可以離線樹狀數組 ,離線線段樹,還可以莫隊  但是現在我要你在線解決   那麼就只能用主席樹了  還是那個套路 我們建立第0棵樹

原创 HDU - 5788 Level Up 主席樹+樹狀數組

我們先說明幾個結論: 一個人的能力變化只會影響自己和上司 當變化的下屬的能力小於等於上司的中位數 那麼這個中位數會向後移動一位 否則不變 (這個畫圖就能體會到) 所以我們需要用主席樹去查詢 第mid個能力值 和 第mid+1個能力值 用

原创 Codeforces Problem 707D Persistent Bookcase bitset+dfs

題目鏈接:codeforces.com/contest/707/problem/D 這個題用了比較巧妙的dfs 我們先來看 1,2,3 操作 這三個都很好做 我們維護1000個bitset  在相應的書架上進行操作就好   關鍵是4操該

原创 HDU多校 - 5316 Magician 線段樹

更新的操作很簡單 關鍵是0操作怎麼做  我們要求一個子序列的最大和 這個子序列滿足每兩個相鄰的項在原數組中的下標都是奇偶相交的 那麼肯定有4種情況(用o表示奇,e表示偶):oo,ee,oe,eo 用線段樹去維護這四種就行啦 注意初值應該

原创 HDU - 4902 Nice boat 線段樹維護最大最小值

題意:1操作讓區間l~r的值爲x 2操作讓區間大於x的值爲gcd(x,ai) 我們維護區間最大值最小值 當最大值等於最小值時 區間的數都相同 這樣可以減少2操作的時間 另外 對於mx[id]<=x的區間我們不必要在更新 也可以剪掉

原创 整數三分/浮點三分模板

轉自https://www.cnblogs.com/lukelmouse/p/12545973.html 整數三分模板 int l = 1,r = 100; while(l < r) { int lmid = l + (r

原创 sql查詢一個表中和自己姓相同的人

顯然我們只知道這個查詢的部分信息  所以我們需要用到模糊查詢 例如查詢 univ.待聘人員中姓劉的人 select * from univ.待聘人員 where 姓名 like '劉%';

原创 sql給已有表添加或刪除約束(主鍵約束,外鍵約束,check約束)

​​​​​ 添加主鍵 給學生表添加主鍵:學號。語句如下: ALTER TABLE 學生  ADD PRIMARY KEY(學號); 刪除主鍵 刪除學生表的主鍵。語句如下: ALTER TABLE 學生 DROP PRIMARY KE

原创 Mondriaan's+Dream POJ 2411 狀壓dp

題目鏈接:poj 2411 題目大意:對於一個n*m的矩陣,可以放1*2的牌,橫着放或者豎着放,問有多少种放的方法。 我們考慮每一行是把牌橫着放還是豎着放,顯然豎着放的時候會影響到下一行,所以我們把豎着放的位置用二進制的1表示,並且是表

原创 hdu 1823 線段樹(非二維做法)

都說這題是二維線段樹裸題,不過我二維線段樹有點麻煩 也不太想寫(還是得學的) 我就直接開200棵線段樹了  這種方法在某一維很小的時候 是完全適用的  複雜度最多 100*1000*log(1000) 完全不虛 #include<c

原创 CH 5401 沒有上司的舞會 樹形dp入門

 表示第個人有沒有去舞會 如果去了 flag=1,否則flag=0 顯然如果去了那麼他的下屬必定不會去   如果沒去那麼他的下屬去不去都行,我們要選一個最大值  我們先找出樹根rt  最終我們需要的答案是  #include<bit

原创 abc 162 E Sum of gcd of Tuples (Hard)

這個題看似很複雜 但我們仔細想想其實就比較簡單了   假設我們要讓N個數的gcd爲x (顯然x的取值爲1到k) 那麼我們可以在這N個數裏面填 1*x,2*x,3*x...i*x  其中i=k/x  但我們發現 這樣去填的話很有可能出現g

原创 CF Round #643 (Div. 2) C. Count Triangles

有人說這套題C比D和E 從過題的人數上來看確實這樣  D題很好想 過的人很多 E題大佬說是三分裸題(大佬總能一眼看出)等下就補E 我們來講講C題  其實有個很簡單的而且細節也很少的方法 當時想了想 被隊友叫去搞D了   主要就是利用前綴