BZOJ3640 JC的小蘋果

2021-07-17 04:42:46 字數 1049 閱讀 5769

建分層圖,有怪獸的點連後邊的層,每層之間是有拓撲序的所以可以一層一層高斯消元,然後我們發現每一層的方程組係數是一樣的只有常數不一樣,而常數項不影響消元過程,所以我們可以預處理消元的過程,這樣每次只需要消常數項就是n^2的,總複雜度就是hp*n^2

這個……有重邊和自環,非常的蛋疼-_-

#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;

#define maxn 310

#define maxm 10010

#define inf 1000000000

#define mod 1000000007

#define eps 1e-8

#define ll long long

int mp[maxn][maxn];

int d[maxn];

int n,m,n;

double a[maxn][maxn];

int hp;

int x[maxn*maxn],y[maxn*maxn];

double v[maxn*maxn];

bool swp[maxn*maxn];

int tot;

double p[maxm][maxn];

int a[maxn];

double ans;

void gs()

break;}}

} if(fabs(a[i][i])>eps)}}

} }}void cal(int x)else

} ans+=p[x][n]/a[n][n];

for(i=1;i<=n;i++) }}

int main()

for(i=1;i<=m;i++)

} for(i=1;i<=n;i++){

a[i][i]=1;

a[n+i][n+i]=1;

if(!a[i]){

for(j=1;j

BZOJ 3640 JC的小蘋果

題鏈 題解 期望dp,高斯消元 設dp i h 在i位置且血量為h這個狀態的期望經過次數。因為每當到達n點就停止遊戲,所以到達終點的概率就是dp n 1 dp n 2 dp n hp 可以按血量把dp分成若干個層次,我們希望這樣分層次後就可以把問題轉變為dag上的dp,可是存在傷害值為0的點,所以我...

BZOJ 3640 JC的小蘋果

我們考慮列出期望方程組,dp i j 表示在第 i 個點血量為 j 的時候到達 n 點的概率,所有的 dp n j 都是1,所有 j 0 都是0 答案是 dp 1 hp dp u j sum fracdp v j a v 我們發現這個方程在j不同的時候,只有常數項發生改變,剩下的係數不變 於是我們把...

BZOJ 3640 JC的小蘋果(逆矩陣)

題意 給出乙個無向圖,從1走到n。開始是血量h,從u到達v時血量減少a v 每次走每條路徑的概率相等。求走到n且血量大於0的概率。思路 設f h u 表示到達u血量為h的概率。由於有的點到達時不掉血,這個不好弄。列出方程組,求出每個不掉血的點由哪些點到達以及他們的係數。比如x,y,z可到達r,r點不...