ZJOI2018 胖 二分 ST表

2022-03-31 15:08:32 字數 733 閱讀 4332

略。首先這個題目名稱用來形容 cly 太好了。

考慮每一對 $(a_i,l_i)$ 對於答案的貢獻。

我們可以發現每一條這種路徑能夠更新的節點是連續的一段。於是我們考慮二分邊界。

設 x 為當前節點,我們當前二分到的節點為 y ,如果 x 不能更新節點 y ,那麼,在區間 $[x,2y-x]$ 中必然存在乙個點到 y 的最短路小於等於 x 到 y 的最短路。

於是,我們可以利用差分思想維護兩個 st 表來分別得到兩邊的最短路。

但是有乙個特殊情況:

乙個點同時被左右更新。

只需要特判就好了。

這題細節好多啊。

#include using namespace std;

typedef long long ll;

int read()

const int n=200005;

const ll inf=1ll<<57;

int n,m,w[n],log[n];

ll x[n],s1[n][18],s2[n][18];

struct nodev[n];

bool cmp(node a,node b)

}} ll ans=0;

for (int i=1;i<=k;i++)

for (int j=17;j>=0;j--)

}} printf("%lld\n",ans);

} return 0;

}

ZJOI2018 胖(ST表 二分)

不開 o 2 又沒卡過去是種怎麼體驗。這可能是 zjoi2018 最簡單的一題了。我都能 a 首先我們發現這個奇怪的圖每個點擴充套件的是乙個區間 l,r 然後我們就可以二分端點了。乙個點 x 擴充套件到點 y 至少要 x y 的時間,所以我們把 a i 排個序,在上面二分乙個合法的區間使得 x a ...

ZJOI2018二試遊記

zjoi2018果然比hnoi2018 本菜雞騙了200,分數上肯定比zjoi多 良心多了,一試和二試都是,每次都有幾天聽課。重點是 zjoi有飯吃!上午從學校出發,坐了4個小時來到yy,中午自己解決,晚飯在yyzx的食堂吃了幾個月來最 的飯菜 綠豆湯裡有生的綠豆?想到明天要聽課,於是晚上逛了逛知乎...

ZSTU 4241 聖杯戰爭(ST表 二分)

題目鏈結 zstu 4241 問題轉化為有很多區間,現在每次給定乙個區間求這個區間和之前所有區間中的某乙個的交集的最大長度。首先我們把所有的區間預處理出來。然後去重 那些被包含的小區間可以去掉 再根據左端點公升序排序。這樣的話這些區間的右端點也是嚴格公升序的。現在對於給定的 x,y 所有區間大概可以...