<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      【CF446D】DZY Loves Games 高斯消元+矩陣乘法

      【CF446D】DZY Loves Games

      題意:一張n個(gè)點(diǎn)m條邊的無(wú)向圖,其中某些點(diǎn)是黑點(diǎn),1號(hào)點(diǎn)一定不是黑點(diǎn),n號(hào)點(diǎn)一定是黑點(diǎn)。問(wèn)從1開(kāi)始走,每次隨機(jī)選擇一個(gè)相鄰的點(diǎn)走過(guò)去,經(jīng)過(guò)恰好k個(gè)黑點(diǎn)到達(dá)n的概率。

      $n\le 500,m\le 500000,k\le 10^9$,黑點(diǎn)個(gè)數(shù)不超過(guò)100.

      題解:一眼就知道是高斯消元和矩乘什么的。我們先預(yù)處理出f[i][j]表示從第i個(gè)黑點(diǎn)開(kāi)始走到的下一個(gè)黑點(diǎn)是j的概率。這個(gè)用高斯消元容易搞定。然后上矩乘即可。但是問(wèn)題在于如果這樣做的話我們要做n遍高斯消元。不過(guò)我們發(fā)現(xiàn)每次消元時(shí)左邊的系數(shù)矩陣都是不變的,所以我們可以將n個(gè)方程組放到一起消元,復(fù)雜度就變成$O(n^3+10^6\log k)$了。

      #include <cstring>
      #include <iostream>
      #include <cstdio>
      #include <algorithm>
      #include <cmath>
      using namespace std;
      typedef double db;
      int n,m,K,tot;
      db f[510][610];
      int dan[510],d[510],p[510],pa[100010],pb[100010];
      struct M
      {
      	db v[105][105];
      	M () {memset(v,0,sizeof(v));}
      	db * operator [] (const int &a) {return v[a];}
      	inline M operator * (const M &a) const
      	{
      		M b;
      		int i,j,k;
      		for(i=1;i<=tot;i++)	for(j=1;j<=tot;j++)	for(k=1;k<=tot;k++)	b.v[i][j]+=v[i][k]*a.v[k][j];
      		return b;
      	}
      }S,T;
      inline void pm(int y)
      {
      	while(y)
      	{
      		if(y&1)	S=S*T;
      		T=T*T,y>>=1;
      	}
      }
      inline int rd()
      {
      	int ret=0,f=1;	char gc=getchar();
      	while(gc<'0'||gc>'9')	{if(gc=='-')	f=-f;	gc=getchar();}
      	while(gc>='0'&&gc<='9')	ret=ret*10+(gc^'0'),gc=getchar();
      	return ret*f;
      }
      int main()
      {
      	n=rd(),m=rd(),K=rd();
      	int i,j,k,a,b;
      	for(i=1;i<=n;i++)
      	{
      		dan[i]=rd();
      		if(dan[i])	dan[i]=++tot,p[tot]=i;
      	}
      	for(i=1;i<=m;i++)	pa[i]=rd(),pb[i]=rd(),d[pa[i]]++,d[pb[i]]++;
      	for(i=1;i<=m;i++)
      	{
      		a=pa[i],b=pb[i];
      		if(!dan[a])	f[b][a]-=1.0/d[a];
      		else	f[b][dan[a]+n]+=1.0/d[a];
      		if(!dan[b])	f[a][b]-=1.0/d[b];
      		else	f[a][dan[b]+n]+=1.0/d[b];
      	}
      	f[1][n+tot+1]=1;
      	for(i=1;i<=n;i++)	f[i][i]+=1;
      	for(i=1;i<=n;i++)
      	{
      		for(j=k=i;j<=n;j++)	if(fabs(f[j][i])>fabs(f[k][i]))	k=j;
      		if(i!=k)	for(j=i;j<=n+tot+1;j++)	swap(f[i][j],f[k][j]);
      		db tmp=f[i][i];
      		for(j=i;j<=n+tot+1;j++)	f[i][j]/=tmp;
      		for(j=1;j<=n;j++)	if(j!=i)
      		{
      			tmp=f[j][i];
      			for(k=1;k<=n+tot+1;k++)	f[j][k]-=f[i][k]*tmp;
      		}
      	}
      	for(i=1;i<=tot;i++)	for(j=1;j<=tot;j++)	T[i][j]=f[p[j]][i+n];
      	for(i=1;i<=tot;i++)	S[1][i]=f[p[i]][n+tot+1];
      	pm(K-2);
      	printf("%.10lf",S[1][tot]);
      	return 0;
      }
      posted @ 2018-04-05 16:53  CQzhangyu  閱讀(661)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 亚洲老女人区一区二视频| 高清免费毛片| 99久久精品国产一区色| 国产suv精品一区二区四| 四虎永久在线精品无码视频| 国产中文字幕精品喷潮| 一区二区三区无码免费看| 最新国产精品中文字幕| 在线天堂www在线| 国产精品自在自线视频| 久久精品国产一区二区三区 | 亚洲一区二区三区| 久久精品国产亚洲AV瑜伽| 本溪| 长腿校花无力呻吟娇喘的视频| 免费A级毛片樱桃视频| 色哟哟www网站入口成人学校| 国产亚洲精品成人aa片新蒲金| 国产成人精品久久一区二| 99久久国产综合精品女同| 中文字幕国产精品资源| 1区2区3区4区产品不卡码网站| 52熟女露脸国语对白视频| 岗巴县| 亚洲日本欧美日韩中文字幕| 亚洲成av人片无码天堂下载| 国内揄拍国内精品少妇| 亚洲精品一区二区三区不| 久久被窝亚洲精品爽爽爽| 福利一区二区在线观看| 色综合久久综合中文综合网| 久久久久久久久久久免费精品| 嗯灬啊灬把腿张开灬动态图| 亚洲人成人伊人成综合网无码| 欧美精品国产一区二区三区| 九九热精彩视频在线免费| 国产精品福利一区二区久久| 国产精品沙发午睡系列990531| 精品人妻伦一二三区久久| 九九热在线精品免费视频| 亚洲欧美v国产一区二区|