原创 Poj3237 樹刨+線段樹(邊權轉點權)

題意:在樹上操作,每次將兩點路徑值全變負和單點修改。每次求兩點間路徑的最大值。 思路: 邊權轉點權的話,每次把一條邊的兒子點作爲該邊的權值。想起來挺好想,很容易出問題。 查詢修改的話,要將多算的那條lca去掉就可以了。剩下的就是板

原创 CF85E Guard Towers 二分+二分圖染色

題意: 思路: 最大值最小二分哈曼頓距離建邊 二分圖01染色判斷是否合理 代碼: #include <bits/stdc++.h> using namespace std; #define ll long long #def

原创 bzoj2243 樹刨+線段樹區間合併

題意:區間修改樹上兩點間的顏色種類,區間查詢樹上兩點間的線段數。 思路:樹刨+線段樹,區間合併是第一次寫。思路爲線段樹維護左端點和右端點的顏色,合併時相同就–。具體實現不太好寫。 代碼: #include <bits/stdc++

原创 bzoj4940 樹刨+莫隊(好題)

題意: 一顆樹n個點有點權,m次操作。 操作兩種: 換根 查詢 x點的子樹選每一個點,y點的子樹選每一個點,如果兩點點權相同ans++,輸出ans n1e5,m5e5 換根是幌子,先按照1來樹刨,這個跟bzoj3083結論一樣

原创 cf527 E Data Center Drama

題意:無向圖,讓你定向每條邊,有必要可以加一些邊,使得圖中每個點的入度和出度%2==0,輸出最小加邊的構造方式。 思路:奇度相連。a-b-c-d-e改爲a->b<-c->d<-e,邊爲奇數任意一個點連一個自環,之後跑歐拉回路。 代

原创 hdu3966-樹刨+bit區間修改單點查詢

題意:對樹上兩點區間增加或減少每點的權值,單點查詢每點的權值。 思路:一開始線段樹寫的,但是我的被卡了2*maxn的空間,優化一下就可以了,但是嫌太麻煩,出題人可能就打算卡部分人的線段樹。 用bit的話,類似預處理數組,每次查詢0

原创 2019西北大學新生訓練第一彈題解

https://vjudge.net/contest/325824#overview 只有後4題和H題和I題的題解,其他題只掛了代碼。不會的同學去羣裏問問過的同學。 N題 思維題 題解:沒魔法的時候:按順序來,用一個cnt來計數

原创 CF1076D 最短路樹

題意:n個點m條邊,最多可以刪除m-k條邊,使得剩下的邊爲構成原圖的最短路樹。 思路:dij之後跑一邊dfs最短路樹。 代碼: #include <bits/stdc++.h> using namespace std; #defi

原创 cf 723e One-Way Reform

題意:給你一個無向圖,使其變爲有向,讓入度==出度的點最多。 思路: 想通一個點:只有度數爲偶數的點可以滿足條件。想通這一點之後可以跟奇點建立一些虛邊,跑歐拉回路。 代碼: #include <bits/stdc++.h> usi

原创 cf 429e Points and Segments

題意:給1e5個區間(區間大小1e9,構造區間01染色,可否構造出每個點被染成0和被染成1的次數一樣。 思路: 想通一點,不可能輸出-1 差分,染色相當於a[l]++,a[r+1]– 設藍+1,紅-1,那麼染藍a[l]++,a[

原创 P1196 [NOI2002]銀河英雄傳說 並查集

並查集好題,維護兩個值,一個是所處隊列大小,一個是每個結點隊列前面還有幾個數。 第二個維護需要巧妙的搞一搞,見find函數 #include <bits/stdc++.h> using namespace std; #define ll

原创 洛谷 P3960 列隊 線段樹動態開點

題意:n*m個人,每次從x,y出去一個,第x行統一向左補位,第m列統一向前移位,每次輸出當前位置人的編號 思路: 模擬過程很容易想到用線段樹或者BIT維護+vector維護,但是不太行,於是學了動態開點,50行不壓行代碼。 代碼:

原创 Codeforces Round #548 (Div. 2) E.Maximize Mex

題意:n(5000)個學生,m個社團(5000),每個學生有一個值ai和歸屬的社團bi,現在領導想讓不同社團出一個人,使得出來的人的值可以從0連續排到ans。每天有一個學生會退出自己的社團,問當天的最大ans是多少。 思路: 如

原创 cf-gym100500-b Conference Room

題意:給你4個1000長度的數組,每個數組可以轉動(比如a[1] = a[3],a[2] = a[1] ,a[3] = a[2]) ,問能否有種情況使得任意的i(1-n)a[i]+b[i]+c[i]+d[i] = sum,sum是

原创 1.6-1.12 訓練總結

1. 每日訓練內容: 週一: 打了CF div2 round 612,白天09:00 – 17:00補了3道2000+分題,刷了兩道st表的板子題,AK了一場以前的div3和div2。 晚上和新生講ak了一套div3。8道題      週