codeMB輪 送外賣

2021-08-03 09:11:40 字數 2266 閱讀 5371

[程式設計題]送外賣2

美團外賣日訂單數已經超過1200萬,實時排程系統是背後的重要技術支撐,其中涉及很多複雜的演算法。下面的題目是某類場景的抽象。

一張 n 個點 m 條有向邊的圖上,有 q 個配送需求,需求的描述形式為( s_i , t_i , l_i , r_i ),即需要從點 s_i送到 t_i, 在時刻 l_i 之後(包括 l_i)可以在 s_i 領取貨物,需要在時刻 r_i 之前(包括 r_i)送達 t_i,每個任務只需完成一次。 圖上的每一條邊均有邊權,權值代表外賣配送員通過這條邊消耗的時間。在時刻 0 有乙個配送員在 點 1 上,求他最多能完成多少個配送任務。

在整個過程中,我們忽略了取餐與最後給使用者遞餐的時間(實際場景中這兩個時間是無法省略的),只考慮花費在路程上的時間。另外,允許在乙個點逗留。

輸入描述:

第一行,三個正整數 n , m , q (2 ≤ n ≤ 0, 1 ≤ m ≤ 400, 1 ≤ q ≤ 10)。

接下來 m 行,每行三個正整數 u_i , v_i , c_i (1 ≤ u_i,v_i ≤ n, 1 ≤ c_i ≤ 20000),表示有一條從 u_i 到 v_i 耗時為 c_i 的有向邊。

接下來 q 行,每行四個正整數 s_i , t_i , l_i , r_i (1 ≤ s_i,t_i ≤ n, 1 ≤ l_i ≤ r_i ≤ 10^6),描述乙個配送任務。

輸出描述:

乙個整數,表示最多能完成的任務數量。
示例1

5 4 3

1 2 1

2 3 1

3 4 1

4 5 1

1 2 3 4

2 3 1 2

3 4 3 4

2
思路:

我們不難想到用進製壓縮dp來解這個題.

一開始思維定式,覺得要用二進位制壓縮來搞,那麼設定dp【i】【j】表示狀態為i,走到了j點的最小時間花費的話,我們需要將10個任務拆成20個點,那麼暴力轉移時間複雜度為o(2^(2*q)*n^2).即使加了lowbit優化,估計也是要tle的。

然後就放下沒有寫。

這也是我第一次寫三進製狀壓dp

2^20約要有1e6次操作,而3^10約要有5e4次操作。運算元量差距巨大。

我們設定dp【i】【j】表示三進製下狀態為i,最終走到了j點的最小時間花費。

那麼狀態對應乙個位子上是0表示還沒有取餐,1表示取餐了還沒送,2表示送到了。

那麼分析狀態每一位上是0還是1對應進行當前任務的狀態轉移:

注意初始化和陣列大小。

ac**:

[cpp]view plain

copy

print?

#include

#include

#include

#include

using

namespace std;  

struct node  

b[505];  

int n,m,q;  

int three[15];  

int a[505][505];  

int digit[59049+500][15];  

int dp[59049+500][23];  

void init()  

}  for(int i=0;i<=59049+200;i++)  

}  for(int i=1;i<=n;i++)  

a[i][i]=0;  

}  }  

void floyd()  

}  }  }  

int main()  

floyd();  

for(int i=0;i  

dp[0][1]=0;  

int end=1;  

for(int i=1;i<=q;i++)end*=3;  

for(int i=0;i  

if(digit[i][k]==1)  

if(digit[i][k]==2)  

}  }  }  

}  int output=0;  

for(int i=0;i  

output=max(output,cnt);  

}  }  

}  printf("%d\n",output);  

}  } 

外賣外賣一起試試熬夜送外賣

說出來有點尷尬,我為什麼會送外賣?在這個繁華的大城市,今天還在下著毛毛細雨,我剛送外賣回來,手上的單子接得有點多,回來的特別晚。看著剩下的時間不夠更文章,衣服還全濕了,這一刻我流下了難過 委屈的眼淚。你可能不相信我會去送外賣,但這已經是行內公開的秘密,很多自 人不往外說,只是為了維護最後的尊嚴和僅剩...

外賣介面(上)

靜態點餐介面 html 品牌外賣香坊 蜂鳥專送 38分鐘送達 減 5個 公告 其原料秘方其烹飪原料秘料秘料秘方其烹飪原料秘方.0另需配送費4元 20起送 css media screen and max width 375px body,ul,li,h4,p body li.head bgimg b...

外賣行業漸熱

隨著阿里淘點點 美團 大眾點評前後涉足外賣行業,餐飲o2o的話題已然無法被行業規避。目前,外賣是相對成熟的餐飲o2o模式,相比較為老套的餐飲 外賣的使用者留存率顯然更高,本地化屬性也更強。目前,除了淘點點 美團 大眾點評外,餓了麼和到家美食匯及易淘食等也不同程度涉足這一領域,近日巴人專訪了餓了麼創始...