設\(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。如果乙...