原创 Codeforces Round #736 (Div. 2)C. Web of Lies(結論)

題目大意: 一張圖,若於a相連點的序號都比a大則a可刪除。 q次詢問 od=1 x,y 給xy連邊 od=2 x,y 給xy刪邊 od=3 詢問幾個點沒被刪除 題解:發現有連鎖反應,只要某點所連接的點中有序號比它大的就一定會被刪除。 #in

原创 Codeforces Round #724 (Div. 2)C. Diluc and Kaeya(思維)

題目大意: 一個D、K組成的字符串。求其每個前綴最多能分割成幾個子串,使被分割的每個串的sumD:sumK相等。 題解:每個前綴被分割子串的sumD:sumK的值,就是整個前綴sumD:sumK的值,從左到右掃,累計答案。 #include

原创 Codeforces Round #737 (Div. 2)C. Moamen and XOR(組合數學)

題目大意: n個數,每個數小於\(2^k\),求滿足下列條件的方案數。 題解: 好蠢的題解。。。 #include<bits/stdc++.h> using namespace std; const int N=2e5+9; cons

原创 Educational Codeforces Round 62 (Rated for Div. 2)C. Playlist(貪心+優先隊列)

題意:n個曲子,ti時長,bi樂趣,最多選k首,得到使sum(ti)*min(bi)最大。 題解:bi排序,從大到小枚舉,使當前bi爲最小bi,從大於bi的曲子中選前k-1大。 #include<bits/stdc++.h> using n

原创 HDU7116lowbit(暴力+線段樹)

題目大意: lowbit(x)是x的最低位1 區間修改 ai+lowbit(ai) 區間和查詢 n,m<1e5 題解: 一個數x最多加log(x)次lowbitx就會變成2的冪,2的冪加lowbitx相當於x2,標記區間是

原创 hdu7132city(離線處理+並查集)

q次詢問,每次求出邊長大於k構成圖中能兩兩互達的點的對數。 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace

原创 Codeforces Round #656 (Div. 3)(A-E)

A. Three Pairwise Maximums 題意:給出x,y,z,其中x=max(a,b),y=max(a,c),z=max(b,c),能否求出a,b,c. 題解:發現若a,b,c存在,則有x<y=z的大小關係,a,b,c中的最大

原创 2021“MINIEYE杯”中國大學生算法設計超級聯賽(2)(1001 I love cube)(數學)

傳送門 對於邊長爲1的立方體,滿足題目中的等邊三角形的頂點類似於(0,0,0)(1,1,0),(0,1,1)。 對於邊長爲i的立方體,對答案的貢獻爲$8*(n-i)^3 $ 最後答案爲$ \sum_{i=1}^{n-1} 8*(n-i)^3

原创 2021“MINIEYE杯”中國大學生算法設計超級聯賽(2)(1002 I love tree)(樹狀數組+樹鏈剖分)

傳送門 前置知識:樹狀數組 差分 樹鏈剖分 LCA 對樹上路徑經過的點進行操作,實際上是對區間維護一個函數。 開三個樹狀數組維護函數的三個係數。 都是基本操作,具體看代碼註釋。 題外話: 上次寫樹剖還是兩年前(? 這幾天重新又學了遍  樹狀

原创 ICPC2020南京 F Fireworks(概率論+三分)

傳送門 題目大意:做一個煙花花費n分鐘,把做的所有煙花放掉需要m分鐘。每次可以選擇做煙花,或者把所有的煙花放掉。 每個煙花成功燃放的概率爲p*0.0001,一旦有煙花成功燃放就停止。問按最優策略,當有煙花成功燃放時,經過時間期望的最小值。

原创 IPCP2020南京 E Evil Coordinate

傳送門 題目大意:給出一個點(x,y),給出移動的順序包含LRUD的一個字符串s,問是否存在s的一個排列,能在方格移動時不經過(x,y)。其實只要猜到 U D L R,相同字母都挨着,然後全排列枚舉。 (出了個BUG,沒理解next_per

原创 Codeforces Round 96 (Rated for Div. 2)E. String Reversal(樹狀數組求逆序對)

傳送門 題目大意:有初始字符串和目標字符串,目標字符串是初始字符串的反轉。 每一步可交換相鄰兩個字符,求從初始字符串到目標字符串的最小步數。 題解: 若初始字符串爲abcde,則反轉後爲edcba。用數組下標表示爲初始字符串12345,反轉

原创 蘭州大學第一屆『飛馬杯』程序設計競賽(同步賽)

傳送門 ★★比賽新機制★★ 題解:遞推 ​sum=a1+a2+...an 如果順序爲a1,a2,a2...an,那麼罰時爲S1=n*a1+(n-1)*a2+(n-2)*a3....+an 如果順序爲a2,a3....,an,a1,那麼罰時爲

原创 Xanadu(構圖+最短路)

    題解:將修改幾次1等價爲構圖時邊的權值即可。跑單源最短路。 #include<iostream> #include<cstdio> #include<queue> #include<cstring> #include<algor

原创 Codeforces Round #723 (Div. 2)

A. Mean Inequality 題目大意:長度2n的序列,求這個序列的一個排列,要求a[i]!=(a[i-1]+a[i+1])/2 題解:將序列排序,每次分別從序列最左側和最右側取數組成新的序列。 #include<iostream