題解:不難發現,對於每一條從$s$到$t$的路徑,設其$x、y$的和為$s_x、s_y$,其對答案的貢獻是$a\cdot s_x+(1-a)\cdot s_y$,這是乙個關於$a$的一次函式。而所有的路徑就對應著許多$a\in [0,1]$直線,而不同$a$所對應的最短路長度恰好構成了這些直線的上凸殼,而求最短路的期望就是求上凸殼的積分(與座標系橫軸所夾面積),考慮到$n、m$很小,所以直接用一次函式不斷擬合,每次求點值暴力跑一邊最短路即可。
#include#include#include#include#include#include#define ll long long#define m 802
#define n 202
#define inf 1010000000
#define eps (1e-5)
using namespace std;
int read()
struct sta
bool operator
};priority_queueq;
int n,m,x[m],y[m],fs[n],nt[m],to[m],tmp,s,t;
double dis[n];
bool vis[n];
void link(int x,int y,int t1,int t2)
double dj(double v)
} return dis[t];
}double calc(double l,double r)
int main()
printf("%.10f\n",calc(0.0,1.0)); return 0;
}
幻想鄉三連A 五顏六色的幻想鄉
非常直接地構造 由於答案與生成樹計數有關,所以一定要使用矩陣樹定理,但這樣就不能限制每種顏色的便使用的數量 我們構造 n 2 個關於 ans 的方程,列舉將紅色的邊拆成 x 條,將藍色的邊拆成 y 條,跑一遍矩陣樹定理,就得到 g sum limits sum limits ans cdot x i...
幻想鄉的符卡
靈夢和魔理沙即將展開彈幕大戰,為了提高實力,靈夢打算突擊學習一些符卡。每張符卡有三個屬性 火力 時長和等級。求勝心切的靈夢希望在一次戰鬥中,使用的符卡的火力值總和不小於 k 然而,由於一些特殊的原因,如果兩張符卡的時長之和是乙個質數,那麼它們便不能在一次戰鬥中同時使用。此外,如果符卡的等級超過了靈夢...
hiho 1145 幻想鄉的日常
幻想鄉一共有n處居所,編號從1到n。這些居所被n 1條邊連起來,形成了乙個樹形的結構。每處居所都居住著乙個小精靈。每天小精靈們都會選出乙個區間 l,r 居所編號在這個區間內的小精靈一起來完成一項任務。特別的,居所相鄰的 有邊相連的 兩個小精靈會自發的組成一隊,並且如果a和b相鄰b和c相鄰,那麼a和c...