一道水題……開始還看錯題了,以為邊帶權……強行\(o(n^3)\)預處理……
首先,我們顯然可以預處理出乙個陣列\(p[u][v]\)表示可可在點\(u\),聰聰在點\(v\)的時候聰聰下一步會往**走。然後……乙個記憶化搜尋就輕易地解決掉了……
至於轉移方程嗎,我覺得也沒有必要寫了……你要是實在不知道就看一看**吧……
下面貼**:
#include#include#include#include#include#define file(s) freopen(s".in","r",stdin),freopen(s".out","w",stdout)#define n 1010
using namespace std;
typedef double llg;
int n,e,c,m,dis[n],p[n][n],fr[n],d[n],ld;
int head[n],next[n<<1],to[n<<1],tt,du[n];
llg f[n][n]; bool vis[n],w[n][n];
void solve(int s)
llg search(int u,int v)
int main()
for(int i=1;i<=n;i++) solve(i),w[i][i]=1;
printf("%.3lf",search(m,c));
return 0;
}
BZOJ1415 Noi2005 聰聰和可可
資料的第1行為兩個整數n和e,以空格分隔,分別表示森林中的景點數和連線相鄰景點的路的條數。第2行包含兩個整數c和m,以空格分隔,分別表示初始時聰聰和可可所在的景點的編號。接下來e行,每行兩個整數,第i 2行的兩個整數ai和bi表示景點ai和景點bi之間有一條路。所有的路都是無向的,即 如果能從a走到...
BZOJ1415 Noi2005 聰聰和可可
portal 一張無向連通圖,貓和老鼠起始點分別位於a,b。每一步貓先行,老鼠每一步可以走連向當前點的任意一條邊,也可以不動,概率相同。貓每一步走向離老鼠最近的點,若該點有多個,選擇標號最小的乙個,若一步沒有到老鼠所在點,還可以再走一步。求貓捉到老鼠的期望步數。首先可以先預處理出陣列p x y 表示...
bzoj1415 Noi2005 聰聰和可可
傳送門 記憶化搜尋。用f i j 表示兩個人物在i和j時的期望值。然後列舉各種情況 1.重合 答案為0 2.差兩步之內 答案為1 3.差2步以上 走兩步後的f值 1 取乙個平均值就可以了。include include include include include include using na...