原创 P5520 [yLOI2019] 青原櫻(排列組合)

P5520 [yLOI2019] 青原櫻 我又來頹文化啦! 題目描述 從nnn個空位中選擇一些空位種mmm櫻花,要求每兩棵櫻花之間至少要有一個空位. 求合法種植數. 題目分析 題解本家 這不是五三水題嘛。。。 首先,看到這種“一個

原创 P5514 永夜的報應(異或,數學)

P5514 永夜的報應 做kruskal重構樹膩了,來拓展下視野。。。 題目描述 定義一組數的權值爲該組內所有數的異或和. 請求出一種分組方案,使得分出的所有組數的權值之和最小,輸出權值之和的最小值. 題目解析 我們知道異或運算的

原创 主席樹專題(區間第k小,可持久化數組)

相關題目 P3834 主席樹(區間第k小) P3919 可持久化數組 P3402 可持久化並查集 程序實現 以下是區間第k小(大)的封裝. struct chairmantree{ private : int lc[maxn

原创 P5024 保衛王國(矩陣乘法,動態dp)

P5024 保衛王國 題意概述 給定一棵帶權樹和mmm個要求,求樹上每條邊的兩個端點至少選擇一個時,最小的總權值. 此外,每個要求都會指定兩個點是否能夠選擇,求在分別滿足這些要求的前提下,最小的總權值是多少. 題目分析 首先,如果

原创 P1032 字串變換(bfs,字符串處理)

P1032 字串變換 關於字符串處理 可以看一下這裏 在這道題中,主要是要把原字符串的指定子串修改爲新的子串. 而在string這一類中,我們有str.replace函數,作用相同. 那麼這樣本題就完成了. 程序實現 #inclu

原创 P4768 [NOI2018]歸程(Kruskal重構樹,倍增,單源最短路徑)

求求你不要再封裝了!struct封裝鍋很多的!\color{#ee0000} {\LARGE\text{求求你不要再封裝了!struct封裝鍋很多的!}}求求你不要再封裝了!struct封裝鍋很多的! 發現Kruskal重構樹和倍

原创 P3959 寶藏(模擬退火)

P3959 寶藏 特別鳴謝 題目描述 給出一張有向圖,從所有節點中取一個節點作爲起始節點,使得遍歷這張圖的總代價最小. 總代價是到達各個節點的代價的和. 到達每個節點的代價的計算方法是:從這個節點的前驅節點到達這個節點的邊的邊權*

原创 P1850 換教室(期望dp,Floyd)

P1850 換教室 題目描述 有n個課程安排,其中第i個課程安排是在aia_iai​號教室上課. 每個課程安排都有相應的替代方案,也就是說,我們也可以選擇申請在bib_ibi​號教室上同樣的課程. 對於每個課程安排,申請通過的概率

原创 P2680 運輸計劃(樹上差分,樹鏈剖分求lca,二分答案)

P2680 運輸計劃 題目大意 給定一棵有邊權的樹和若干條路徑,現在可以把這棵樹的某一條邊的邊權變成0,試求改變了這條邊後最長路徑的最小值. 題目解析 二分答案: 最長路徑最小值,第一反應就是二分最長路徑的長度. 二分法的實現不需

原创 對拍model

暴力程序(std.cpp) #include<bits/stdc++.h> using namespace std; int n,m,k,x; int main(){ // freopen("data.in","r",stdin

原创 P1600 天天愛跑步(樹上差分,桶思想,最近公共祖先)

P1600 天天愛跑步 題目描述 給定一棵樹和一些路徑,每個點有一個點權,求每個點點權恰好等於路徑上的訪問排位的數量. 舉個例子:s−>ts->ts−>t經過了點kkk,點kkk的權值爲www且點kkk恰好是這條路徑上第w+1w+

原创 P1312 Mayan遊戲(dfs,模擬)

P1312 Mayan遊戲 題目大意 太複雜了一點,自己看吧 大概是說一款類似於消消樂的遊戲,每次每個方塊只能左右移動/交換,當至少有連續三個方塊排成一列或者時才能消去,消去之後有可能觸發連鎖反應. 題目分析 20pts: 有一檔

原创 P1084 疫情控制(二分答案,倍增,貪心)

P1084 疫情控制 題目描述 給定一棵樹,一些點(不包括樹根)上有軍隊,每條邊有一個邊權(移動時間),各個軍隊可以同時移動,求最小的移動時間,使得每條通往任意葉子結點的路徑上至少都有一支軍隊. 題目分析 二分答案: 通過觀察題意

原创 模擬退火的進一步學習(P5544 [JSOI2016]炸彈攻擊1)

P5544 [JSOI2016]炸彈攻擊1 題目描述 給定平面上nnn個圓與mmm個點,找到平面上某個點,選擇某個不大於RRR的長度,滿足以這個點爲圓心、這個長度爲半徑的圓與給定圓不相交(可以相切)且覆蓋的(mmm個點裏的)點數最

原创 模擬退火學習報告(P3878 [TJOI2010]分金幣)

P3878 [TJOI2010]分金幣 題目描述 現在有n枚金幣,它們可能會有不同的價值,現在要把它們分成兩部分,要求這兩部分金幣數目之差不超過1,問這樣分成的兩部分金幣的價值之差最小是多少? 題目分析 分析發現,我們可以每次交換