NOI 2005 聰聰與可可

2022-03-30 02:06:45 字數 1201 閱讀 3021

\(\\\)

一張\(n\)個點,\(m\)條邊的有向圖中,貓在\(a\)點,鼠在\(b\)點,每一秒兩者按照以下規則移動:

當任意時刻貓到達鼠所在地時鼠被吃掉,求鼠被吃掉的期望時間。

\(\\\)

bzoj200題達成紀念

\(\\\)

#include#include#include#include#include#include#include#include#define n 1010

#define r register

#define gc getchar

#define inf 2000000000

using namespace std;

inline int rd()

while(isdigit(c))

return f?-x:x;

}bool vis[n];

double f[n][n];

int n,m,s,t,tot,hd[n],d[n][n],deg[n],nxt[n][n];

struct edge e[n<<1];

inline void add(int u,int v)

queueq;

inline void bfs(int x)

}}inline void dfs(int u,int v)

if(f[nu][v]<-10) dfs(nu,v);

f[u][v]=(res+f[nu][v])/(deg[v]+1)+1;

}int main()

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

for(r int j=1;j<=n;++j) d[i][j]=nxt[i][j]=inf,f[i][j]=-(double)inf;

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

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

for(r int j=1;j<=n;++j)

if(d[i][j]if(d[v=e[k].to][j]+1==d[i][j]) nxt[i][j]=min(nxt[i][j],v);

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

if(f[s][t]<-1) dfs(s,t);

printf("%.3lf\n",f[s][t]);

return 0;

}

NOI2005 聰聰與可可

輸入檔案 cchkk.in輸出檔案 cchkk.out簡單對比 時間限制 1 s 記憶體限制 256 mb 問題描述 在乙個魔法森林裡,住著乙隻聰明的小貓聰聰和乙隻可愛的小老鼠可可。雖然灰姑娘非常喜歡她們倆,但是,聰聰終究是乙隻貓,而可可終究是乙隻老鼠,同樣不變的是,聰聰成天想著要吃掉可可。一天,聰...

Noi2005 聰聰和可可

noi2005 聰聰和可可 time limit 10000ms memory limit 65536k total submit 21 accepted 14 description input 資料的第1行為兩個整數n和e,以空格分隔,分別表示森林中的景點數和連線相鄰景點的路的條數。第2行包含兩...

NOI2005 聰聰與可可(期望)

oi版貓和老鼠 給定乙個有n個點的圖 n leq 1000 在s點有乙隻貓,t點有乙隻jerry,每一單位時間貓先走 沿著到jerry的路徑中的最短路走一步,如果同時存在多條最短路則選擇走一步後序號更小的一條,另外,如果這一步沒有走到jerry所在的點,貓會再走一步 砸瓦魯多 jerry後走,可等概...