原创 HDU1698 Just a Hook 線段樹成段更新

基礎的線段樹成段更新,學習了notonlysuccess dalao的代碼後寫的 #include<iostream> #include<cstdio> #include<cstring> #include<ctime> #include

原创 POJ 3468 A Simple Problem with Integers 線段樹(成段更新)

基本是裸的線段樹,維護區間元素和,設一個lazy數組來保存更新數據,區段更新即可。 #include<iostream> #include<cstdio> #include<cstring> #include<ctime> #inclu

原创 Codeforces Round #409 (rated, Div. 2, based on VK Cup 2017 Round 2) B. Valued Keys

只要y的每個字母都小於等於x的就直接把y輸出,否則輸出-1 #include<bits/stdc++.h> using namespace std; string s1,s2; int main() { cin>>s1>>s2;

原创 aoj0189 Convenient Location floyd-warshall最短路

題意:給一個連通圖,每條邊帶權值即距離,找出這些點裏到其他各點總距離的最短的一個,並輸出該距離。 由於數據量比較小,又是多點間的最短路,所以使用floyd-warshall算法,用dp思想可滿足 dp[k][i][j]=min(dp[k

原创 codeforces round#404(div.2) D. Anton and School - 2

 題意:定義RSBS序列,使得該序列爲偶數個數(非空),前一半都是左括號,後一半都是右括號;輸入一列括號,可將其部分括號刪除使得剩下變成RSBS序列,輸出刪除的方法數。 一道數學題,先計算出右括號的總數量r,從左面開始遍歷,左括號數量初

原创 codeforces round#408(div.2) C. Bank Hacking

題意:相當於若干個銀行構成了一個無根樹,我們需要把所有的銀行hack掉,剛開始可以隨意選一個,後來就只能選被hack過的鄰居才行,每個銀行都有他們的strength,hack它需要不比它小的strength值,每次hack一個銀行後,它的

原创 Educational Codeforces Round 19 B. Odd sum

想了想是可以貪心過的,先遍歷一遍,記錄大於等於0的數的偶數個數和奇數個數,然後進行從大到小排序,如果所有值都小於零,那麼遍歷一下輸出第一個奇數;如果奇數個數是奇數,直接把大於零的數全部加起來即可;如果奇數個數是零,那麼先把所有正數加起來,

原创 Educational Codeforces Round 19 A. k-Factorization

分解因數,質因數分解後(同時放進棧裏)個數如果小於k,輸出-1,否則就輸出棧裏的k-1個數,然後n/(前k-1個乘積,k=1時爲1) #include<bits/stdc++.h> using namespace std; int n,k

原创 Codeforces Round #409 (rated, Div. 2, based on VK Cup 2017 Round 2) C. Voltage Keepsake

直接二分即可,右端點的初始值要設大一些,然後直接循環若干次,若大於一個足夠大的數就輸出-1,否則就輸出左端點 #include<bits/stdc++.h> using namespace std; int n,p,a[100005],b

原创 codeforces round#404(div.2) C. Anton and Fairy Tale

題意:一個穀倉共n粒米(最多存放n粒),每天會先送來m粒米,然後會有鳥來吃,第i天會來i只鳥,一隻鳥吃一粒米,輸出第幾天穀倉的米可以被鳥吃完。 首先我們先特判一下,當n<=m時,只能到第n天才能吃完(剛開始就是這個地方沒考慮被hack了

原创 HDU1542 Atlantis 線段樹掃描面積

第一次做面積掃描的題,首先進行數據的離散化排序,建立線段樹,把整個圖形從下到上一次求值, 如圖,我們每次更新最下面的邊的長度,首先是AB長度,之後可以AB*AP,這是第一部分面積,接着繼續更新向上面的一層,即PB'長度,之後PB'*CP

原创 HDU1754 I Hate It 簡單線段樹

維護區段最大值,單點更新,區段詢問。 #include<iostream> #include<cstdio> #include<cstring> #include<ctime> #include<algorithm> #include

原创 codeforces round#404(dv.2) B. Anton and Classes

題意:Anton喜歡下棋和編程,打算去上這兩門課,每門課都有若干時間段,Anton想要在課間休息儘可能多的時間,並輸出這個時間,若是不能上兩節課就輸出0。 簡單貪心,遍歷一遍分別找出兩門課的最晚開始時間和最早結束時間,然後分別用最晚開始

原创 HDU1166敵兵佈陣 簡單線段樹

裸的線段樹,單點更新,每次區段詢問即可。 #include<iostream> #include<cstdio> #include<cstring> #include<ctime> #include<algorithm> #includ

原创 codeforces round#408(div.2) A. Buying A House

題意:等距離的一列數組表示房子價格(0爲有人居住的),輸出距離目標的最近的可以買下的房子。 數據量很小,直接暴搜一遍即可。 #include<bits/stdc++.h> using namespace std; int n,m,k,d