完成 cf 難度總和:2300
+2300
+2100
+2100
+2000
+2000
+900
+2100
=15800
2300+2300+2100+2100+2000+2000+900+2100=15800
2300+2
300+
2100
+210
0+20
00+2
000+
900+
2100
=158
00被 wyq ≈
20000
≈ 20000
≈20000
吊打這道題目 2300 就過分,直接分別按照橫縱座標對傳送門排序,相鄰之間暴力連邊。然後跑最短路就好了。
一道不錯的思維題,考慮區間 [l,
r]
[l,r]
[l,r
] 加減 1
11,相當於差分陣列加減 1
11。於是我們將差分陣列大於 0
00 的去和小於 0
00 的配對,假設大於 0
00 的為 x
xx 反之為 y
yy。則最後差分陣列的情況肯定是 (
0....,∣
x−y∣
)(0....,|x-y|)
(0....
,∣x−
y∣) 所以第一問答案即為 max(
x,y)
\max(x,y)
max(x,
y)。對於第二問我們考慮如何將差分陣列置 0
00 。那麼我們可以將前面某段 0
00 減去 ∣x−
y∣
|x-y|
∣x−y
∣ 或者本身減,所以可能方案數為 ∣x−
y∣+1
|x-y|+1
∣x−y∣+
1考慮樹形dp,我們設 fu,
0/1f_
fu,0/1
表示與 u
uu 為偶/奇數的個數。
然後考慮 up-and-down 分三種情況進行討論即可。
1.從 u
uu 子樹內連出一條邊向不在 u
uu 子樹的點連邊
2.從 u
uu 子樹內連出一條邊向在 u
uu 子樹不在 v
vv 當前子樹的點連邊
3.從不在 u
uu 子樹的點向 u
uu 子樹內連邊
分情況 dp 就好了
又是分類討論題,我們對每個人前後位置放進乙個連通塊。考慮乙個連通塊,若為樹那麼該連通塊答案就為該塊的大小。若連通塊有環,相當於會發生連鎖反應所以就兩種情況,如果有自環那麼該連通塊就一種。最後乘法原理計數即可。
我們考慮那些邊可以重複,就是邊的乙個點 u
uu 被兩個特殊點都覆蓋那麼就可以刪邊。這個 bfs 模擬一下就可以了。
又是樹形 dp,我們設 fx,
if_
fx,i
表示 x
xx 子樹內距離 x
xx 的距離 s%k
=i
s\%k=i
s%k=
i 的總步數,gx,
ig_
gx,i
表示 x
xx 子樹內距離 x
xx 的距離 s%k
=i
s\%k=i
s%k=
i 的點的個數。
f x,
i=∑v
∈xfv
,i−1
,gx,
i=∑v
∈xgv
,i−1
f_=\sum _f_,g_=\sum_g_
fx,i=
∑v∈x
fv,
i−1
,gx,
i=∑
v∈x
**,i
−1對於 i=1
i=1i=
1 的我們的 fx,
1=∑v
∈xfv
,0+g
v,
0f_=\sum _ f_+g_
fx,1=
∑v∈x
fv,
0+g
v,0
因為要多跳一步了,所以額外要加這些貢獻。
我們先算出以 1
11 為根的答案,然後換根dp一下即可。
於是答案就是 ∑i∑
jfi,
j\sum_i\sum_j f_
∑i∑j
fi,j
03 04做題總結
3 4 月做題總結 題目鏈結 主要思路 確定比賽名次 拓撲排序 奇怪的夢境 拓撲排序判環 逃生反向拓撲 儀仗隊o尤拉函式 秦隊長的猜想 g哥德 猜想 棋盤問題 dfs 回溯 非常可樂 bfs or 數論 表示式求值 m模擬legal or not t拓撲排序 產生冠軍 t拓撲排序 reward 拓撲...
做題總結 Pawn s Revenge
題目描述 這道題目自己一開始時也沒有思路 後來才發現其實也並不難,實在是學的不太好 後來從網上查詢了一些資料,大概明白了這道題目的思路。這道題目是在已經有且只有乙個k棋子的情況下,通過增加最少數量的的pawn棋子,能夠將對方的所有的 棋子全部攻擊到,其中k能夠攻擊其餘八個方向,pawn棋子只能攻擊左...
做題總結 Latin Squares
原題 題意分析 題目就是輸入乙個二維陣列 用來表示矩陣 判斷對於矩陣中的每乙個數字是否在該數字所在的行 所在的列的只出現一次 相當於數獨的概念 如果是的話,則該矩陣是拉丁方,再判斷矩陣的第一行 第一列的元素是否按照公升序的方式排列的,從而進行對應的判斷輸出 做題思路 實現 include 萬能標頭檔...