51nod1789 跑得比誰都快

2022-05-07 22:48:26 字數 1299 閱讀 4992

設\(f[i]\)為根節點到\(i\)的最小耗時

設\(s\)為\(i\)的祖先集合, 可以得到

\[f[i] = min(f[j] + (i - j)^p),j \in s

\]對於\((i - j)^p\), 我們有

\[((i + 1) - (j + 1))^p + (i - j)^p \leq ((i + 1) - j)^p + (i - (j + 1))^p

\]可以發現這是乙個滿足四邊形不等式的式子

直接上決策單調性即可(我這個寫法是看的別人的, 應該是對的吧)

#include #include #include #include #include #include #define itn int

#define read read

#define n 100005

using namespace std;

int n, p, w[n], cnt;

long long pw[n], ans;

template < typename t >

inline t read()

while(c >= '0' && c <= '9')

return x * w;

}namespace graph

e[n];

inline void adde(int u, int v) ; head[u] = cnt; }

};using namespace :: graph;

long long fpow(long long x, int y = p)

namespace dfs

q[n];

void dfs(int u, int fa)

f[u] = tmp;

pos[u] = num;

stk[++top] = u;

} bool flag = 0;

for(int i = head[u]; i; i = e[i].next)

flag = 1, dfs(e[i].to, u);

if(!flag) ans = min(ans, f[u]);

top--;

}};

using namespace :: dfs;

int main()

memset(f, 0x3f, sizeof(f));

ans = f[0];

dfs(1, 0);

printf("%lld\n", ans);

return 0;

}

51NOD 1789 跑的比誰都快

香港記者跑的比誰都快是眾所周知的常識。現在,香港記者站在一顆有 n 個點的樹的根結點上 即1號點 編號為 i 的點擁有權值 a i 資料保證每個點的編號都小於它任意孩子結點的別號。我們假定這棵樹的每個葉子結點都在發生乙個大新聞,香港記者要用最少的耗時去報道其中的任意乙個。若香港記者目前處於第 i 號...

51Nod 1789 跑的比誰都快

香港記者跑的比誰都快是眾所周知的常識。現在,香港記者站在一顆有 n 個點的樹的根結點上 即1號點 編號為 i 的點擁有權值 a i 資料保證每個點的編號都小於它任意孩子結點的別號。我們假定這棵樹的每個葉子結點都在發生乙個大新聞,香港記者要用最少的耗時去報道其中的任意乙個。若香港記者目前處於第 i 號...

51nod 1240 莫比烏斯函式

莫比烏斯函式,由德國數學家和天文學家莫比烏斯提出。梅滕斯 mertens 首先使用 n miu n 作為莫比烏斯函式的記號。據說,高斯 gauss 比莫比烏斯早三十年就曾考慮過這個函式 具體定義如下 如果乙個數包含平方因子,那麼miu n 0。例如 miu 4 miu 12 miu 18 0。如果乙...