洛谷P1766 液體滴落

2021-08-09 12:51:43 字數 994 閱讀 4581

題目←

首先需明確題目中「不受影響」的含義

出現兩條相交線段的話,液體的執行軌跡應該是這樣的:

於是發現只需要確定液體從一條線段上落下來後首先落到哪條線段上就可以確定下乙個落點了……

然後?按每條線段較低端點的降序排列->保證液體不會落到之前的線段上;

然後模擬就可以了

注意細節

#include

#include

#include

using namespace std

;const int maxn = 100000 + 50

;struct edgel[maxn];

int n;

double s;

bool cmp(edge a,edge b)

int p = 1

;bool in(int num,int pos)

double pre;

int main()

l[i].k = (l[i].y2 - l[i].y1)/(l[i].x2 - l[i].x1);

l[i].b = l[i].y2 - l[i].k*l[i].x2;

}sort(l + 1,l + n + 1,cmp);

pre = 2147483647

; while(p <= n)}}

s = l[p].y1 < l[p].y2 ? l[p].x1:l[p].x2;

pre = l[p].y1 < l[p].y2 ? l[p].y1:l[p].y2;

p ++;

}int ans = s;

printf("%d",ans);

return 0

;}

今後還是多在洛谷刷題吧

畢竟有ac數這個東西……避免把**一糊就往上交orz

題解 LuoGu1766 液體滴落

原題傳送門 一道比較煩的模擬題 首先求出每條線的解析式 發現本題支援o n 2 o n 2 o n2 做法,直接上模擬 每次列舉每條線,把橫座標代入,找到當前水滴掉落可以落到的最高的線上 然後讓水滴滾到線兩端較低的那端,重複此操作就行了 code include define maxn 10010 ...

洛谷P5049 洛谷P5022 題解 旅行

原題 資料加強版 加強版 參考你谷題解 終於調過了 又是一如既往的申必錯誤 noi plus石錘了 原題的資料允許我們 o n 2 暴力斷邊,但是加強版的資料達到了 n log n 級別,我們必須在斷邊這一環節尋求更好的解法。考慮我們進入環後在何處回溯 根據繼續走環走到的點分類 設當前已經從 b 走...

洛谷練習P2279 P1346

2020年,人類在火星上建立了乙個龐大的基地群,總共有n個基地。起初為了節約材料,人類只修建了n 1條道路來連線這些基地,並且每兩個基地都能夠通過道路到達,所以所有的基地形成了乙個巨大的樹狀結構。如果基地a到基地b至少要經過d條道路的話,我們稱基地a到基地b的距離為d。由於火星上非常乾燥,經常引發火...