(多校)歡樂豆

2022-09-19 03:42:13 字數 2187 閱讀 2985

很新穎的題

首先觀察到 \(m\) 很小,考慮從其入手

如果我們把 \(m\) 個邊看做雙向邊,把連在一起的點看為聯通塊

那麼乙個聯通塊內的點的個數是和 \(m\) 同級的

我們可以對於每個聯通塊做一遍全源最短路

對於乙個聯通塊內的點對 \((i,j)\)

分情況考慮:

首先如果 \((i,j)\) 有連邊,可以直接到,更新一遍答案

其次 \(i\) 點也可以先到聯通塊外的點,再回到 \(j\) 點

跑最短路時,對於 \(i\) 點的所有出邊所對應的點\(y\) ,我們將其排序

接下來,我們實際要做的就是單點修改和區間修改,即對於每乙個 \([y_i,y_]\) 區間更新 \(dis\)

下乙個轉移點即為線段樹中最小值所在位置

每次轉移完把該點打上刪除標記即可

code#include #define re register

#define int long long

// #define ll long long

#define pir make_pair

#define fr first

#define sc second

#define db double

#define pb push_back

using namespace std;

const int mol=998244353;

const int maxn=2e5+10;

const int inf=1e9+10;

inline int qpow(int a,int b) return ans; }

inline int read()

while(ch>='0'&&ch<='9')

return s*w;

}int n,m,w[maxn],size[maxn],tot,id[maxn],eid[maxn]; int ans,dis[maxn];

int tos; struct date que[maxn];

int fa[maxn]; bool vs[maxn];

inline int find(int x)

map,int> vis;

vector> vec;

vectorscc[maxn];

multisetss; int as;

struct edge edge[maxn<<1];

int head[maxn],cnt;

inline void add(int a,int b,int c) ; head[a]=cnt; }

namespace stg tre[maxn<<2];

inline void update(int id)

if(tre[lid].minl==-1||(tre[lid].minl>tre[rid].minl&&tre[rid].minl!=-1))

else

}inline void build(int id,int l,int r)

int mid=(l+r)>>1;

build(lid,l,mid); build(rid,mid+1,r);

update(id);

}inline void push_down(int id)

inline void ins(int id,int l,int r,int ll,int rr,int val)

int mid=(l+r)>>1;

if(tre[id].lazy!=inf) push_down(id);

if(ll<=mid) ins(lid,l,mid,ll,rr,val);

if(rr>mid) ins(rid,mid+1,r,ll,rr,val);

update(id);

}inline int quy(int id,int l,int r,int pos)

}inline void spfa(int s) ;

sort(que+1,que+1+tos,(date x,date y)

}if(las+1<=tot) stg::ins(1,1,tot,las+1,tot,ds+w[now]);

stg::ins(1,1,tot,id[now],id[now],-1);

}}inline void wor(int rt) {

for(re int i=0;i

刷歡樂豆的方法

每次能刷五萬多,刷之前賬號必須至少有1000歡樂豆。上有低價賣歡樂豆,大家可知道?先介紹一下他們的方法 店家用兩個小號在 悶抓鬥地主 場開乙個桌子 加了密碼的 你付款以後他們給你乙個密碼讓你進入桌子。開始遊戲後兩個小號會一直 不出 你可以一直贏,贏夠五萬歡樂豆了他們兩個小號會自動退出,交易成功。至於...

多校4 櫥櫃

include include include include includeusing namespace std int s1 400100 int s2 400100 struct node struct cmp int main int i,j,m,n while scanf d d n,m...

多校聯賽總結

首先是一些資料 2014 multi university training contest 1 by fzu a 數學 費馬小定理 b 網路流 最小k路徑覆蓋 c 樹形dp 樹的重心 資料結構 d 貪心 巧妙 e 數學 dp 隱含馬爾科夫模型 f 線段樹 函式式 二分 g 線段樹 狀態壓縮 h 模...