洛谷 1437 擴散

2021-09-25 08:02:11 字數 887 閱讀 6414

這道題是一道典型的二分

//就是判斷有點麻煩——蒟蒻

題目說:兩個點a、b連通,記作e(a,b),當且僅當a、b的擴散區域有公共部分。

連通塊的定義是塊內的任意兩個點u、v都必定存在路徑e(u,a0),e(a0,a1),…,e(ak,v)。

也就是說乙個點擴散到另乙個點的 時間 就是他們的橫縱座標差值的和(xi-xj)+ ( yi-yi )

如果 時間2 就說明兩個塊連通(注意mid要2,因為兩個點同時擴散)

然後用並查集儲存連通塊

上**:

#include

using namespace std;

const

int max =

100;

int n;

struct nodea[max]

;int dis[max]

[max]

,f[max]

;inline

intread()

while

(ch >= 『0』 && ch <= 『9』)

return s * w;

}//快讀

intfind

(int x)

void

unionn

(int x,

int y)

bool ok

(int mid)

return true;

}int

main()

int l =

1,r =

1e9;

while

(l < r-1)

//正常的二分

cout << r << endl;

return0;

}

洛谷 1437 敲磚塊 DP

題意 中文題 題解 先旋轉三角形。然後要打掉第i行第j個,就要打掉第i行第j 1個和第i 1行第j 1個。所以到第i,j元素時,對於第i行,前j都被打掉,後面的都沒被打掉。但是對於第i 1行,前j 1一定被打掉,但後面的可以被打掉,也可以不打掉。所以狀態轉移就很好寫了。include include...

洛谷P1661 資訊奧賽一本通1437 擴散

洛谷 資訊奧賽一本通 時間限制 1000 ms 記憶體限制 65536 kb 提交數 676 通過數 347 乙個點每過乙個單位時間就會向四個方向擴散乙個距離,如圖。兩個點a a b b 連通,記作e a b e a,b 當且僅當a a b b的擴散區域有公共部分。連通塊的定義是塊內的任意兩個點u ...

洛谷P2002訊息擴散

傳送門啦 這個題就是tarjan強連通分量與入度的例題了。思路 利用縮點的思想,先預處理一下所有的強連通分量,然後把每個強連通分量內的所有節點看做乙個節點,然後處理一張新圖,然後檢查每個點的入度,然後取入度為 0 的點 縮點後 的個數,即為資訊出發點。可能有人想問為什麼?大體說明一下 1.充分性證明...