bzoj 2306 Ctsc2011 幸福路徑

2021-08-09 00:21:17 字數 745 閱讀 5775

有向圖 g有n個頂點 1, 2, …, n,點i 的權值為 w(i)。現在有乙隻螞蟻,從

給定的起點 v0出發,沿著圖 g 的邊爬行。開始時,它的體力為 1。每爬過一條邊,它的體力都*p,而螞蟻爬到某個頂點時的幸福度,是它當時的體力與該點權值的乘積。 求最大幸福值。

因為當體力很小後,對答案就沒什麼影響力,所以用乙個玄學的倍增floyd卡精度就能過。 設f

[i][

j][t

] 表示i到j走2t

步的最大幸福值。

那麼有f[i

][j]

[t]=

max

然後就過了。

code:

#include

#include

#include

#include

using

namespace

std;

const

double eps=1e-10;

int n,m;

double f[110][110],g[110][110];

double w[110],p;

int main()

for(;p>eps;p*=p)

double ans=0;

for(int i=1;i<=n;i++) ans=max(ans,f[st][i]);

printf("%.1lf",ans+w[st]);

}

bzoj2306 Ctsc2011 幸福路徑

有向圖 g有n個頂點 1,2,n,點i 的權值為 w i 現在有乙隻螞蟻,從給定的起點 v0出發,沿著圖 g 的邊爬行。開始時,它的體力為 1。每爬過一條邊,它的體力都會下降為原來的 倍,其中 是乙個給定的小於1的正常數。而螞蟻爬到某個頂點時的幸福度,是它當時的體力與該點權值的乘積。我們把螞蟻在爬行...

BZOJ2306 幸福路徑(動態規劃,倍增)

bzoj 不要求確切的值,只需要逼近 顯然可以通過移動 步來達到逼近的效果 考慮每次的一步怎麼移動 設f i j f i j 表示走i i 步到了j role presentation j j能夠得到的最大權值 f i v ma x f i 1 u w v pi u,v g f i v max f ...

BZOJ 1919 Ctsc2010 效能優化

題目 題意 給出兩個長度為 n 的整數序列a 0.n 1 b 0.n 1 和非負整數 c 對於兩個長度為 n的整數序列,定義 運算,結果為乙個長度為 n的整數序列,例如f g h 則有h k i j k modn f i g j 求a b b b 每一位模 n 1 的值,其中有 c 個 運算,n 1...