JZOJ 3773 小 P 的煩惱

2021-08-05 21:29:49 字數 1922 閱讀 7882

問題是這樣的,高代老師近期要組織班上同學一起去漂流,漂流可以看做是在一張 n 個點 m 條邊的有向無環圖上進行的,點編號從 0 到 n-1 ,表示景點; 邊是連線各景點的一定長度的河道。同時,定義編號為 s 是起點而 t 是終點。我們不妨把從 s 點到 t 點不論走什麼樣的路徑都需要經過的邊稱為橋, 這些橋由於地勢險要所以是危險的。現在高代老師有兩條長度為 l 的安全繩,他希望用這兩條安全繩覆蓋盡可能長的橋,使得他們通過的橋的長度之和盡量短。

繩子可以覆蓋普通的邊,不一定只覆蓋一條邊

對於 100%的資料,n<=100000, m<=200000,0<=s,t,si,ti

比賽想到正解沒時間寫系列

結果我dfs的時候在9萬9千多爆棧,tm的n最大10w,各種髒話上腦。。。。。

可以將所有的橋弄出來,比較簡單的演算法可以用拓撲序弄出走到某個點的方案數,也就弄出了走某條邊的方案數

如果走某條邊的方案數=從st到en的方案數,那麼邊為橋

然後是乙個線段覆蓋(橋是線段,需要被繩子覆蓋)模型,考慮繩子可能放在哪些位置

整題線性解決

#include

#include

#include

#include

#define fo(i,a,b) for(int i=a;i<=b;i++)

#define fd(i,b,a) for(int i=b;i>=a;i--)

#define efo(i,v) for(int i=last[v];i;i=next[i])

#define max(x,y) ((x)>(y)?(x):(y))

#define min(x,y) ((x)<(y)?(x):(y))

#define mset(a,x) memset(a,x,sizeof(a))

using namespace std;

typedef long long ll;

typedef double db;

void read(int &n)

const int n=1e5+5,m=2e5+5,mo=1e9+7;

const ll inf=1e17;

int n,m,num,st,en,l,tot,to[m],next[m],wei[m],last[n],in[n],out[n];

int fto[m],fnext[m],flast[n],sm[n];

int ans,qi[n],pmx[n];

ll dis[n],f[n],g[n];

struct node

a[n];

bool cmp(node a,node b)

bool bz[n];

struct edge

b[m];

queue q;

void link(int u,int v,int w)

void pre()

}mset(bz,0);

g[en]=1;

for(q.push(en);!q.empty();q.pop())

}qi[0]=0;

fo(i,1,m)

}void work()

sort(a+1,a+num+1,cmp);

mset(sm,0);

fo(i,1,num) sm[i]=sm[i-1]+a[i].y-a[i].x;

mset(pmx,0);

ans=0;

int l=1,k=0,j=0;

fo(i,1,num)}}

ans=max(ans,t+rs);

}}int main()

pre();

if(dis[en]==inf)

work();

printf("%d\n",sm[num]-ans);

}return

0;}

數學 高精度 JZOJ 3771 小 Z 的煩惱

有n nn個球要放到m mm個箱子裡,有以下兩條規則 1 若把標號為i ii的球放進了第j jj個盒子,那麼標號為2 i 2 i2 i的球一定要在第j 1 j 1j 1個盒子裡面 若j jj2 若把標號為i ii的球放進了第j jj個盒子,並且k 2 i k 2 i k 2 i,那麼標號為k kk的...

小薩的煩惱

題目 description 聖誕節又要到了!小薩希望和自己心儀的mm一起出去度過乙個浪漫的的聖誕節。他進行了詳盡的準備,找到了n個很適合他們去約會的好地方,但無奈小薩和他的mm都是初三學校,晚上必須回學校上晚修,沒有足夠的時間讓他們走遍每乙個地方。迫於無奈,小薩選擇了乙個最合適的地方s。小薩打算和...

Hihocoder 小Hi的煩惱

解題思路 其實題目自帶的題解已經交代的比較清楚了。但是如果完全按照題目自帶的解法來計算,肯定是會超時的。因為無論如何還是o n 2 的解法,當然也可能是彩筆我比較菜只能寫出這樣的。所以需要一些轉換。這個題目給的記憶體空間為1024m,顯然我們要用空間換時間了。就以單個科目為例吧。假設a i 表示第i...