題解:這是一道很簡單的dfs,只需要從s把圖跑一遍算出,每個點的到達概率。把他們存入乙個陣列,然後從大到小sort一遍,顯然概率越大的權值越應該加p,然後就把每個點的概率*權值就ok了。
#include#define m 1000000009
using namespace std;
int head[100005];
int next[100005];
int ver[100005];
double edge[100005];
double ans;
struct ooed[100005];
double val[100005];
int tot;
int n,m,s,t,p;
int read()
while(ch>='0'&&ch<='9')
return num*f;
}void add(int x,int y,double z)
void dfs(int x,double posible)
}bool cmp(oo x,oo y)
int main()
for(int i=1;i<=m;i++)
dfs(s,1);
sort(ed+1,ed+n+1,cmp);
ans=val[s];
for(int i=2;i<=n;i++)
ans+=(ed[i].gl*(val[ed[i].bh]));
} printf("%.3lf",ans);
}
NOIP模擬賽19 8 26 死宅與陷阱
考場想用dijkstra求最短路得方法算出最大概率,但是錯了 因為如果有兩條路可以到達該點,那麼到達這個點的概率應該是走這兩條路的概率之和,而不是選擇概率大的一條路。所以t1只有5分qwq 直接暴力dfs算概率,最後把概率排序增加陷阱 include using namespace std defi...
noip模擬賽 密碼
表示沒看懂演算法3 問題描述 有壓迫,就有反抗。mored的寵物在法庭的幫助下終於反抗了。作為乙隻聰明的寵物,他打算把魔法使mored的魔法書盜去,奪取mored的魔法能力。但mored怎麼會讓自己的魔法書輕易地被盜取?mored在魔法書上設定了乙個密碼鎖,密碼鎖上有乙個問題。施以斯臥鋪魔法吧,你有...
NOIP模擬賽 老師
題目描述 一座有n層的教學樓裡有一些學生,第i 0 i n 層有studentsi個學生。你被給定了乙個數k,如果第i層有x個學生,那麼這一層需要 x k 個老師。你可以調整每個學生的樓層,但是每個學生至多只能調整一層,就是說第i層的學生只能去第i 1層 如果有的話 第i層 第i 1層 如果i 1 ...