題目大意:由於山體滑坡,dk被困在了地下蜘蛛王國迷宮。為了搶在dh之前來到tft,dk必須盡快走出此迷宮。此迷宮僅有乙個出口,而由於大boss的力量減弱影響到了dk,使dk的記憶力嚴重下降,他甚至無法記得他上一步做了什麼。所以他只能每次等概率隨機的選取乙個方向走。當然他不會選取周圍有障礙的地方走。如dk周圍只有兩處空地,則每個都有1/2的概率。現在要求他平均要走多少步可以走出此迷宮。
input:
先是一行兩個整數n, m(1<=n, m<=10)表示迷宮為n*m大小,
然後是n行,每行m個字元,'.'表示是空地,'e』表示出口,'d』表示dk,'x』表示障礙。
output:
如果dk無法走出或要超過1000000步才能走出,輸出tragedy!,
否則輸出乙個實數表示平均情況下dk要走幾步可以走出迷宮,四捨五入到小數點後兩位。
sample input:
2 1ed
3 3d.x
.x.x.e
sample output:
1.00
tragedy!
題目思路:
首先對地圖節點重新標號。假設e[i]表示dk從i點開始走出迷宮的期望值。
那麼e[i]=(e[a1]+e[a2]+e[a3]+...+e[an])/n+1,其中a1...an是i的相鄰節點。
那麼對於每乙個dk可達的節點來說,都可以為它建立這樣的乙個方程。現在假設dk可達的點有n個,那麼我們最終將會得到n元一次方程組。
最後利用高斯消元解出e[no[s]]。其中s是dk的起點,no[s]是重標號後的起點這裡要重點注意的是,我們聯立方程的時候,一定要注意dk可達這個條件,不然就會導致無解的情況。
zjut 1423
/*地下迷宮
description:
由於山體滑坡,dk被困在了地下蜘蛛王國迷宮。為了搶在dh之前來
到tft,dk必須盡快走出此迷宮。此迷宮僅有乙個出口,而由於大boss
的力量減弱影響到了dk,使dk的記憶力嚴重下降,他甚至無法記得他
上一步做了什麼。所以他只能每次等概率隨機的選取乙個方向走。
當然他不會選取周圍有障礙的地方走。如dk周圍只有兩處空地,則每
個都有1/2的概率。現在要求他平均要走多少步可以走出此迷宮。
input:
先是一行兩個整數n, m(1<=n, m<=10)表示迷宮為n*m大小,
然後是n行,每行m個字元,'.'表示是空地,'e』表示出口,'d』表示dk,'x』表示障礙。
output:
如果dk無法走出或要超過1000000步才能走出,輸出tragedy!,
否則輸出乙個實數表示平均情況下dk要走幾步可以走出迷宮,四捨五入到小數點後兩位。
sample input:2ed
3d.x
.x.x.e
sample output:
1.00
tragedy!
首先對地圖節點重新標號。假設e[i]表示dk從i點開始走出迷宮的期望值。
那麼e[i]=(e[a1]+e[a2]+e[a3]+...+e[an])/n+1,其中a1...an是i的相鄰節點。
那麼對於每乙個dk可達的節點來說,都可以為它建立這樣的乙個方程。現
在假設dk可達的點有n個,那麼我們最終將會得到n元一次方程組。最後
利用高斯消元解出e[no[s]]。其中s是dk的起點,no[s]是重標號後的起點
這裡要重點注意的是,我們聯立方程的時候,一定要注意dk可達這個條件,
不然就會導致無解的情況。
*/#include#include#include#include#include#includeusing namespace std;
#define eps 1e-9
const int maxn=200;
double a[maxn][maxn],x[maxn];//方程的左邊的矩陣和等式右邊的值,求解之後x存的就是結果
int equ,var;//方程數和未知數個數
int gauss()
a[now][now]=count;
x[now]=count;}}
if(gauss())
else printf("tragedy!\n");
}return 0;
}
zjut 1423 (高斯消元 求期望)
此題為高斯消元求期望的入門題目,做法就是對圖中非x的點重新標號,令ei表示從該點出發到達終點的期望走過的步數,對於終點的e值顯然為0,最後的結果為起點的e值,方程也不難得到。注意普通的高斯消元化成上三角陣用在這類題目可能會有問題,因為會出現方程無解的情況,這樣在高斯消元最後一步回代的過程中會出現問題...
174 地下城遊戲
一些惡魔抓住了公主 p 並將她關在了地下城的右下角。地下城是由 m x n 個房間組成的二維網格。我們英勇的騎士 k 最初被安置在左上角的房間裡,他必須穿過地下城並通過對抗惡魔來拯救公主。騎士的初始健康點數為乙個正整數。如果他的健康點數在某一時刻降至 0 或以下,他會立即死亡。有些房間由惡魔守衛,因...
36 地下城遊戲
題目描述 一些惡魔抓住了公主 p 並將她關在了地下城的右下角。地下城是由 m x n 個房間組成的二維網格。我們英勇的騎士 k 最初被安置在左上角的房間裡,他必須穿過地下城並通過對抗惡魔來拯救公主。騎士的初始健康點數為乙個正整數。如果他的健康點數在某一時刻降至 0 或以下,他會立即死亡。有些房間由惡...