膜你賽 ROAD (跑路)

2021-08-01 11:51:22 字數 977 閱讀 3987

小a的家到公司的路可以看做乙個有向圖,小a家為點1,公司為點n,每條邊長度均為一千公尺。假設小a每秒鐘可以跑2^k千公尺(k是任意數)。當然,所以總跑路長度不能超過maxlongint千公尺。問最少需要幾秒才能到公司。資料保證1到n至少有一條路徑。

第一行兩個整數n,m,表示點的個數和邊的個數。

接下來m行每行兩個數字u,v,表示一條u到v的邊。

一行乙個數字,表示到公司的最少秒數。

4 41 11 22 33 4
1

【樣例解釋】

1->1->2->3->4,總路徑長度為4千公尺,直接使用一次跑路器即可。

【資料範圍】

50%的資料滿足最優解路徑長度<=1000;

100%的資料滿足n<=50,m<=10000,最優解路徑長度<=maxlongint。

題解:水題一道 看到2的k次方考慮倍增最短路 能倍增到的記錄為1

貼上**

#include#include#include#includeusing namespace std;

int n,m,dis[55][55];

bool f[55][55][35];

int main()

for(int i=0;i<=32;i++)

for(int j=1;j<=n;j++)

for(int k=1;k<=n;k++)

for(int g=1;g<=n;g++)

if(f[j][k][i]&&f[k][g][i])

for(int k=1;k<=n;k++)

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

for(int j=1;j<=n;j++)

dis[i][j]=min(dis[i][j],dis[i][k]+dis[k][j]);

printf("%d\n",dis[1][n]);

return 0;

}

2018 10 30 膜你賽 火柴

題目 題目描述 p同學總共有k根火柴,分別放在擺成一列的n個火柴盒內,保證k是n的倍數。p同學想要每個火柴盒都有相同數目的火柴,每次他可以從乙個火柴盒中拿一根火柴放到相鄰的火柴盒中。他想知道他最少要移動多少次。輸入輸出格式 輸入格式 第一行乙個整數n,表示火柴盒數。第二行n個整數a 1,a 2,a ...

2018 10 30 膜你賽 咒語

題目 題目描述 亮亮夢到自己來到了魔法城堡,但一扇巨大的石門阻攔了他通向城堡內的路。正當他沮喪之際,突然發現門上有一處機關,機關上有一張很長的紙條。亮亮拿起紙條的一端,只見上面寫著開啟機關的方法 開啟機關需要唸動符咒,咒語是一串長為 l 的由 0 和 1 組成的字串。在這張長紙條上列了 n 個 長為...

2018 11 02 膜你賽 設計迷宮

題目 題目描述 長假過後,迷宮設計大師必須完成他的工作。旅遊公司給他一張矩形的地圖。地圖由n m個小方塊組成。旅遊公司將把一對夫婦放在迷宮中的兩個不同的小方塊上,讓他們互相尋找。原本的地圖上是空曠曠的一片,大師要做的就是在一些小方塊之間建造一些牆從而把地圖變成迷宮。建造的迷宮有乙個條件,無論這對夫妻...