題解 LuoGu5663 加工零件

2021-10-08 18:13:51 字數 1053 閱讀 4589

原題傳送門

傳送帶可以理解為邊權為1的一條邊

題目可以轉化成乙個可以重複來回走的無向圖中,對於每個詢問(a,

l)

(a,l)

(a,l

),詢問1是否有到a

aa長度為l

ll的路徑

那麼如果兩個點之間存在長度為x

xx的路徑,那麼這兩個點必定存在長度為x+2

x+2x+

2的路徑

但是這兩個點之間卻不一定存在長度為x−2

x-2x−

2,或是x+1

x+1x+

1的路徑

所以我們可以求1到每個點的奇數最短路和偶數最短路,用dijkstra就好了

code:

#include

#define maxn 100010

using

namespace std;

struct edgeedge[maxn <<1]

;struct heap};

priority_queue q;

int dis[maxn][2

], vis[maxn][2

], n, m, q, num, head[maxn]

;inline

intread()

void

addedge

(int x,

int y)

, head[x]

= num;

}int

main()

for(

int i =

2; i <= n;

++i) dis[i][0

]= dis[i][1

]=2e9;

dis[1]

[1]=

2e9;

q.push

((heap));

while

(!q.

empty()

));}

}}while

(q--

)return0;

}

題解 P5663 加工零件 民間資料

首先,看到這道題,我直接想到的是遞迴,於是複雜度就上天了,考慮最短路。首先,看一張圖 我們該如何解決問題?問題 3 做 5 階段的零件 1 要不要做呢?其實,實質就是看 3 到 1 有沒有長度為 5 的路徑。問題 3 做 7 階段的零件 1 要不要做呢?其實,實質就是看 3 到 1 有沒有長度為 7...

零件加工 貪心 題解

時間限制 1 sec 記憶體限制 128 mb 提交 24 解決 7 提交 狀態 討論版 命題人 外部匯入 題目描述 工匠小k最近有n個零件需要加工。每個零件都需要ti天的時間來完成,每個零件每延遲一天加工都要繳納一定的罰金si。延遲的天數為從今天算起到該工作開始的那天,第乙個零件加工沒有罰金。現在...

NOIP 加工零件 題解

加工零件凱凱的工廠正在有條不紊地生產一種神奇的零件,神奇的零件的生產過程自然也很神奇。工廠裡有 nn 位工人,工人們從 1 sim n1 n 編號。某些工人之間存在雙向的零件傳送帶。保證每兩名工人之間最多隻存在一條傳送帶。如果 xx 號工人想生產乙個被加工到第 l l gt 1 l l 1 階段的零...