原创 Codeforces Round #541 (Div. 2) D. Gourmet choice(並查集+拓撲) F. Asya And Kittens(啓發式合併+鏈表)
D. Gourmet choice 題意:給出兩個序列aia_iai和bjb_jbj的大小關係,問能否恢復這兩個序列,如果可以則輸出,否則輸出NoNoNo。 題解:因爲有等於號的存在,所以導致建圖會形成環,因此我們考慮用並查集將等
原创 ZOJ - 1610 Count the Colors(線段樹區間更新)
Count the Colors 題意:每次對區間染色,注意不染端點,然後問最後每種顏色有多少段。 題解:用線段樹維護每個區間的顏色信息,然後因爲不染端點,因此如果染0→40\rightarrow40→4,只會染444個區間那麼我們將
原创 牛客練習賽40 C-小A與歐拉路(樹形dp | 兩次dfs 求樹的直徑)
C-小A與歐拉路 題意:求圖中最短的歐拉路。 題解:因爲是一棵樹,因此當從某一個節點遍歷其子樹的時候,如果還沒有遍歷完整個樹,一定還需要再回到這個節點再去遍歷其它子樹,因此除了從起點到終點之間的路,其它路都被走了兩次,而我們要求總的路
原创 CCPC-Wannafly Winter Camp Day3 (Div2, onsite) I 石頭剪刀布(按秩合併並查集)
石頭剪刀布 題解:每次有兩個事件: yyy去挑戰xxx,如果贏了可以坐在xxx的位置,打平或者輸了就要被淘汰。 詢問在進行所有一類事件後,有多少種情況可以讓xxx現在還沒有被淘汰。 對於第二類事件,我們假設xxx挑戰了別人aaa次
原创 CCPC-Wannafly Winter Camp Day3 (Div2, onsite) A 二十四點*(bfs爆搜)
二十四點* 題解:沒啥好辦法,只有暴力搜答案咯~而且只有兩組數據 代碼 #include<bits/stdc++.h> using namespace std; vector<double> S; struct node{
原创 CCPC-Wannafly Winter Camp Day3 div2 F. 小清新數論* 莫比烏斯反演
小清新數論 心情:蒻蒻的第一道莫比烏斯反演!!看了好幾個小時QAQ,終於看懂些了!開心!^_^ 題解:(1)∑i=1n∑j=1nμ(gcd(i,j)) \sum_{i = 1}^n\sum_{j = 1}^n \mu(gcd(i,j)
原创 CCPC-Wannafly Winter Camp Day1 (Div2, onsite) I 起起落落(dp)
起起落落 題解:畫一下圖我們就可以發現要求的序列是波浪並且整體下降趨勢的。pa[2k−1]>pa[2k+1]>pa[2k]p_{a[2k-1]}>p_{a[2k+1]}>p_{a[2k]}pa[2k−1]>p
原创 CCPC-Wannafly Winter Camp Day1 (Div2, onsite) F 爬爬爬山(dijkstra)
爬爬爬山 題解:因爲降低山需要花費l∗ll * ll∗l的代價,因此我們可以將這部分花費加到邊上。然後跑最短路就好了。 #include<bits/stdc++.h> #define P pair<LL,int> typedef lo
原创 CCPC-Wannafly Winter Camp Day4 (Div2, onsite) A C F G I
比賽鏈接:https://zhixincode.com/contest/17 A 奪寶奇兵 題解:因爲是先從1->n再從n->1,所以我們可以考慮當成一遍走,即每次的選擇無非[ai→ai+1,bi→bi+1]或者[ai→bi+1,bi
原创 Codeforces Round #536 (Div. 2) A B C D E(dp)
這可能是我做div2div2div2以來做的最好的一次?它居然unratedunratedunrated了!哼╭(╯^╰)╮不給力的服務器!關鍵時刻拓機!雖然這次的D比較水。但是是我一次過了四題QAQ… 比賽傳送門:https://c
原创 CCPC-Wannafly Winter Camp Day1 (Div2, onsite) E 流流流動(樹形dp)
流流流動 題解:題目是點的選與不選的問題,並且有連邊,因此我們很容易想到樹形dpdpdp,但是題目圖的並不是聯通的,因此我們可以將000與每一個連通集建邊。然後考慮dp[u][1]dp[u][1]dp[u][1]表示選取以點uuu爲根
原创 Codeforces Round #535 (Div. 3) A B C D E1
A. Two distinct points 題解:特判判斷一下兩個區間的左右關係即可。直接輸出邊界。 #include<bits/stdc++.h> using namespace std; int main() { #ifnd
原创 CCPC-Wannafly Winter Camp Day1 (Div2, onsite) J 奪寶奇兵(貪心)
奪寶奇兵 現場時:一開始我有點糾結,因爲不知道是優先當前數量最多的還是優先當前最便宜的。然後我起初的想法就是維護一個當前數量最多並且最便宜的堆,直到當前已擁有的寶物數量大於堆頂的寶物的數量。後來想了想,是不對的,因爲我維護的第一關鍵字
原创 CCPC-Wannafly Winter Camp Day1 (Div2, onsite) B 吃豆豆(dp)
吃豆豆 題解:不妨反向考慮,題目問到達並且至少獲得CCC個糖果所需的最少時間,那麼我們考慮位置爲(i,j)(i,j)(i,j)時間爲ttt的狀態時所能獲取的最大糖果數。那麼答案就是dp[ex][ey][t]>=Cdp[ex][e
原创 HDU 5685 (前綴+逆元)
Problem A 題意:給出你哈希值的計算方式,然後多次詢問子串的哈希值。 題解:我們通過觀察哈希值的計算式子就可以發現是連乘,又是多次詢問,因此我們可以想到打表的方式。前綴積即可。ans[a,b]=dp[b]dp[a−1]ans[