原创 2019 Multi-University Training Contest 4 K-th Closest Distance 二分+主席樹

題意:給你n個數,每次查詢l,r區間內與p距離第k大的數 題解:二分+主席樹(其實用的是權值),每次查詢p-mid和p+mid之間的個數是不是k。。。傻逼了數組開小了。。然後查詢也查小了,卡了好長時間 #include<iostream

原创 K-th Number POJ - 2104 主席樹模板+離散化

題意:區間第k大 題解:主席樹模板 // #pragma comment(linker, "/STACK:1024000000,1024000000") #include<iostream> #include<algorithm> #

原创 2019牛客暑期多校訓練營(第五場)I three points 1 計算幾何

題意:問能不能將三角形放在矩形內 題解:讓一個頂點在原點,另一條邊卡在牆角上,分別枚舉是哪條邊卡在上面 雖然題目說1e-6精度以上的會被忽略。。。但是我輸出.6f就是不行。。。得.10f纔夠 //#pragma comment(link

原创 2019牛客暑期多校訓練營(第五場)B generator 1 十進制矩陣快速冪

題意:,求xn 題解:用矩陣快速冪搞,但是n太大所以得轉化爲十進制求。然後矩陣乘法那個地方不要mod太多。。。會被卡常 //#pragma comment(linker, "/STACK:1024000000,1024000000")

原创 Simple Puzzle HDU - 3600 N數碼有解+逆序數對+樹狀數組

題意:n數碼是否有解 題解:如果n爲奇數,逆序數對如果跟n同奇則不行。如果n爲偶數,就得判斷0的行數到目標行的距離是否是同奇同偶 #pragma comment(linker, "/STACK:1024000000,1024000000

原创 2019 Multi-University Training Contest 4 1010 Minimal Power of Prime

題意:質因數分解之後,輸出最小的指數 題解:1e4之前的數字進行暴力判斷,之後進行開四次。。三次。。。一次根看看哪個開出來是整數,就是一萬以上的質因數 因爲1e4的質數只能4次,1e5只能三次,再往上只能兩次,所以直接開根看是不是整數就行

原创 J - Swaps and Inversions HDU - 6318 樹狀數組+離散化

題解 :第一種是逆序數對的個數*x,第二種最小交換次數也是逆序數對的個數*y,直接取最小值 細節就是需要離散化,不然會爆 #include <bits/stdc++.h> using namespace std; #define INF

原创 2019牛客暑期多校訓練營(第四場)C 單調棧&&線段樹

題意: 題解:l和r我用dp求得,跟單調棧思路差不多,但是好寫 這裏有兩個問題 1.我一開始用rmq的stp表查詢最值,結果這種用空間換時間的做法mle了,因爲維數有25維,正好被卡掉了 後來只能用線段樹查詢最值 2.爲了讓b[i]包括在

原创 How far away ? HDU - 2586 trajan算法lca

題意:樹上查詢兩個點之間的距離 題解:必須離線,res[i]=d[u]+d[v]-2*d[lca(u,v)]; #include <bits/stdc++.h> using namespace std; typedef long lon

原创 codeforces 1175D 後綴數組

題意:將數組分成連續的k個集合,然後定義花費爲 每個集合的和*集合的下標求最大花費 題解:對應的花費就是後綴數組選出k個來加和(畫畫圖看看),其中sum[1]必須包括,剩下的就是選出k-1個後綴數組來加和就是對應的花費了 #includ

原创 codeforces 1175F rmq+區間不重複

題意:找從[l,r]每一個元素都不重複且最大值爲r-l+1的區間數 題解:先找到以i爲左端點的最遠右端點r,然後rmq判斷一下最大值是不是r-l+1思路 rmq直接套板子就可以 #include <bits/stdc++.h> usin

原创 2019牛客暑期多校訓練營(第四場)A 樹的直徑

題意:選一點使k個關鍵點到這一點的最長路徑長度最小,輸出最長路徑 題解: #include<bits/stdc++.h> using namespace std; typedef long long int ll; const int

原创 2019牛客暑期多校訓練營(第三場)H 思維

題意:找出一條直線,要求將所有點平分到兩個平面內且直線不能過其中一個點 題解:按照x和y從小到大排序,如果左邊中間那個店的正好在最上面,那直接切一下他右邊就可以了 如果左邊中間那個點上面還有點。。。就得算一下中間軸然後左右偏一下就可以。。

原创 2019牛客暑期多校訓練營(第二場)H 動態規劃

題意:求解第二大的矩形 題解:動態規劃或單調棧,HDU1055,求解第二大的時候就需要把設x爲底,y爲高(x,y),(x-1,y),(x,y-1)全部用來計算一下 非要記錄兩個頂點上頭了。。。。搞了好幾個小時的map。。。然後發現記錄左右

原创 codeforces 1175E 倍增

題意:給你n個區間,m次詢問覆蓋[X,Y]至少要多少個區間 題解:將p[x][j]定義爲以x爲開頭的倍增1<<j個區間的右端點,剩下的直接求多少j就可以了 #include <bits/stdc++.h> using namespace