原创 3076 翻翻樂

Task 翻轉01矩陣,使對任意一個點,周圍點的異或和爲0.每個點對應一個代價,有的點不能翻轉。求最小代價。 數據範圍:矩陣的大小爲n*n,n<=16,如果不可能完成輸出-1. Solution 終態枚舉 對於翻轉問題,

原创 3081 排隊

Task 一棵n個節點的樹,每個節點容納1個人。1是入口,有m輪操作,共2種操作。 1. 加入x個人,求最後一個人到達的節點。 規則 ①只要有空位就往下走 ② 多個空位,選編號最小的 2. 移走x號節點上的人,x

原创 3075 走捷徑

`求在樹上長爲K的最短邊數。 N<=2e5,K<=1e6 對70%數據k<=100 40分O(n^2)終態枚舉。 枚舉根,dfs訪問到每個點的距離,可以最優性減枝。 70分O(n*K)樹形dp。 定義dp[i][j]爲到i

原创 3080 道路規劃

Task 給兩行數1-n的序列,相同的數連線,求最大的集合滿足集合中任意兩個數都相交。 Solution 比賽的時候想歪了,認爲它求最大獨立集。於是把任意不相交的兩個數之間連邊, 求出的一個最大獨立集必定是任意兩個都相交的。

原创 2719 sheldon數

Task 轉化爲2進制形如ABABAB…。A,B分別代表1,0,長度各自相同的數爲sheldon數,且最高位肯定是1。 求它在[ l , r ]區間內的個數。 0<=L<=R<2^63 Solution 70分枚舉•十進制

原创 3078 倉庫

Task 給n個節點中有K個入口的樹,求有多少個1~n的排列順序,順序遍歷每個節點時,都存在都入口到該節點的路徑,滿足路徑上不包含之前遍歷過的點。答案mod 1e9+7。 Solution 1. K=1。 在樹上求方

原创 3077 刪邊旅行

Task n個點m條邊的無向聯通圖,求刪除每一條邊後,任意兩點間的距離和。 數據範圍:n<=100個節點,m<=2000條邊,邊權爲1. Solution 60分O( mn ( n+m ) )暴力bfs 由邊權爲1讓人聯想

原创 3079 挖金礦

Task N*m的矩形,每行取[ 1,m ]個數,求取出的最大平均值。 H*n<=1e5,a[i][j]∈[1,1e9] Solution 二分的功能: ① 有序數組查找某值 ② 假定解,判可行 ③ 最大化最

原创 3013 畢加豬

Task 給定一個圖,判斷A到B的路徑上是否存在負環。 Solution 強連通的好處:把圖縮點成DAG(有向無環圖),用Bellma¬¬_ford算法判斷負點,負點所在的強連通分量一定存在負環。 問題轉化爲:在DAG上,詢問A的強

原创 3129 樹

3129 樹 Task 給定根爲1,n個節點的樹。有2種操作: ① 對x節點打標記 ② 詢問x最新一個打了標記的祖先 N,Q<=1e5 1在初始時已被標記。 Solution 暴力出奇跡 暴力一:O(1)打標記,

原创 D2T3 運輸計劃

Task 一棵n節點樹,m個詢問求(a,b) 路徑距離。改動一條邊距爲0,求m個詢問中最大距離的最小值。 Solution 方法一: 暴力出奇跡。 根據題意“改動一條邊”,最樸素的做法是O(n)枚舉改動哪一條邊,該邊只對路徑中存在

原创 2018 有志氣博士來種草

Task N節點的樹,m個操作分2種: ① (x,y)路徑上的各邊的值+1 ② 詢問邊(x,y)的值。 Solution 方法一:樹鏈剖分 樹鏈剖分使用於樹上的區間更新或者區間詢問,把鏈重新編號,加入線段樹中。 方法二:

原创 1725 天黑請閉眼

方法一:樹形dp 如果點(i,f[i])建邊,得到基環外向樹、 相鄰兩個點不能同時作爲殺手,即相鄰兩個點不能同時取。把環砍掉一條邊,變成了樹,根據“沒有上司的舞會”,定義dp[0][x],表示x不取最大殺手數,dp[1][x]表示x取

原创 1727 洪水拯救計劃

Task 一棵n個節點的樹,給定K個點。 求從每個節點(1到n)出發,確定一個遍歷順序,求遍歷完K個點不返回原點的最小距離。 N<=5e5,K<=n,邊權<=1e6 Solution 普遍化問題: ① 給定一棵樹,從根出發,

原创 3084 車庫

Task N個停車位,m輛車。每個時刻來一輛或者走一輛。車到達時,有多個停車位選編號最小的,如果沒有停車位,就等待。車走時,若有多輛車等待,先到先得空車位。 每輛車花的代價=停車位i的價格v*車j的重量w。求所有車的總代價。 N<=