hdu 1839(最短路 二分)

2021-09-24 06:01:57 字數 1021 閱讀 4614

hdu  1839

(1)題意:

有n個點,m條路徑,1是起點,n是終點,最多tmin

經過一條路徑需要花費d分鐘,這條路徑的最大容積是c,(就是只有容積小於路徑容積的貨物才能通過。)

問從1~n在t分鐘內,最多能運多少體積的貨物。

(2)思路:

記錄所有的體積,從小到大排序,二分查詢最大且時間之和在t分鐘之內的體積。(和西安的m題一樣)

(3)注意:

二分時要l<=r,避免l = r的情況出現。

(4)**:

#include#include#include#include#include#includeusing namespace std;

typedef long long ll;

const int maxn = 5e5+10;

const ll inf = 2e9+10;

ll tim[maxn],t,cap[maxn];

int vis[maxn],tot,n,m,head[maxn];

struct nodecur[maxn];

void init()

void add(int x,int y,ll c,ll d);

head[x] = tot++;

}bool spfa(ll vol)

queue q;

q.push(1);tim[1] = 0;

while(!q.empty())

}} }

return tim[n]<=t;

}int main(void)

cap[0] = 0;cap[m+1] = 0;

sort(cap+1,cap+1+m);

int l = 1,r = m,mid;

ll ans = 0;

while(l<=r)

else r = mid-1;

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

} return 0;

}

HDU 1839 (最短路 二分)

帶權 1的最短路 短 時間路徑 dijkstra跑最短路 帶權大於 1,bfs沒法跑,鄰接矩陣沒法跑,n 1e4,那肯定是乙個稀疏圖了,用鄰接矩陣 鏈式前向星 容量最大 二分 滿足單調性 尋找乙個最大容量,從s到t的路徑,不超重,同時在規定時間達到t。pragma gcc optimize 2 in...

hdu 2962 最短路 二分

題意 最短路上有一條高度限制,給起點和最大高度,求滿足高度最大情況下,最短路的距離 不明白為什麼列舉所有高度就不對 1 include2 include3 include4 const int maxint 999999 5 int c 1005 1005 2 dist 1005 h 1005 6 ...

hdu2363Cycling 二分 最短路

乙個無向圖 每個點都有高度,問從起點1到終點n的最高點減最低點的差值最小的前提下的最短路和這個差值 由於n 100所以可以先將這n個點按公升序排,列舉這個最短路的左邊最小mi,二分找最小的右邊ma include include include include using namespace std...