P4308 CTSC2011 幸福路徑

2022-05-16 12:10:30 字數 890 閱讀 8335

這道題看到標籤是暴力和倍增,然後看題目並沒有覺得能寫出來,在下就慌得一批(我太菜了)

感覺用lca好像寫不出來,就參考了一下popo dalao的**qaq

題目大意:給定一張有向圖,每個點有權值,螞蟻從某個節點出發,初始體力值為1,每走一條邊體力值=p,每經過乙個點會獲得幸福值為點權體力值,求最大幸福值

這裡的 f[t][i][j] 為從點i走到點j花2^t步的最大幸福值

然後就可以得出 *f[t][i][j] = max(f[t][i][j],f[t - 1][i][k] + f[t - 1][k][j] p);**

迴圈多次就可以得出近似值

螞蟻可能在某個點保持不動,因此初始要將鄰接矩陣清為-inf,然後每個點連一條邊權為0的自環

此外注意下卡死時最後經過的那個點的權值會不會被統計 有可能出鍋qaq

**就十分的簡潔

#include#include

#include

#define maxn 110

#define inf 999999999.0

using

namespace

std;

intn, m, x ,y, b;

double a[maxn], p, f[40

][maxn][maxn];

intmain()

for(int t = 1; t <= 35; t++)

double ans = -inf;

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

ans = max(ans,f[35

][b][i]);

printf(

"%.1lf\n

", ans +a[b]);

return0;

}

CTSC2011 幸福路徑

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

CTSC2011 幸福路徑

給定 張有向圖,每個點有個權值,螞蟻從某個點開始,初始體 為1,每經過 條邊,體 會變為原來的p 0 n leq 100,點權 leq 100 sol 正解是自動機的幫浦引理,一看就不可做,考慮暴力碾標算 由於點權不超過 100,體力很小的時候點權的貢獻也很小,保留一位小數就會把很小的貢獻捨去 做乙...

bzoj 2306 Ctsc2011 幸福路徑

有向圖 g有n個頂點 1,2,n,點i 的權值為 w i 現在有乙隻螞蟻,從 給定的起點 v0出發,沿著圖 g 的邊爬行。開始時,它的體力為 1。每爬過一條邊,它的體力都 p,而螞蟻爬到某個頂點時的幸福度,是它當時的體力與該點權值的乘積。求最大幸福值。因為當體力很小後,對答案就沒什麼影響力,所以用乙...