BZOJ 3143 高斯消元+贪心....
2017-01-10 15:00
169 查看
思路:
先算一下每条边经过次数的期望 转化为每个点经过次数的期望
边的期望=端点的期望/度数
统计一下度数 然后高斯消元
贪心附边权…….
//By SiriusRen #include <cmath> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; #define eps 1e-10 int n,m,d[250050];double a[505][505],b[250050],ans; struct Point{int x,y;}e[250050]; void Gauss(){ int i,j,k;double t; for(i=1;i<=n;i++){ for(j=i;j<=n;j++)if(fabs(a[j][i])>eps)break; if(j>n)continue;if(j!=i)swap(a[i],a[j]); for(j=i+1;j<=n;j++)if(fabs(a[j][i]>eps)){ t=a[j][i]/a[i][i]; for(k=i;k<=n+1;k++)a[j][k]-=t*a[i][k]; } } for(int i=n;i;i--){ for(int j=i+1;j<=n;j++)a[i][n+1]-=a[i][j]*a[j][n+1]; a[i][n+1]/=a[i][i]; } } int main(){ scanf("%d%d",&n,&m); for(int i=1;i<=m;i++) scanf("%d%d",&e[i].x,&e[i].y), d[e[i].x]++,d[e[i].y]++; for(int i=1;i<=m;i++) a[e[i].x][e[i].y]+=1.0/d[e[i].y], a[e[i].y][e[i].x]+=1.0/d[e[i].x]; for(int i=1;i<=n;i++)a [i]=0; for(int i=1;i<=n;i++)a[i][i]=-1; a[1][n+1]=-1;Gauss(); for(int i=1;i<=m;i++)b[i]=a[e[i].x][n+1]/d[e[i].x]+a[e[i].y][n+1]/d[e[i].y]; sort(b+1,b+1+m); for(int i=1;i<=m;i++)ans+=b[i]*(m-i+1); printf("%.3lf\n",ans); }
相关文章推荐
- bzoj 3143 [Hnoi2013]游走(贪心,高斯消元,期望方程)
- BZOJ 3143 游走 (高斯消元 贪心)
- BZOJ 3143 高斯消元+贪心....
- 【BZOJ3143】[Hnoi2013]游走【高斯消元】【期望DP】【贪心】
- 【BZOJ 3143】 [Hnoi2013]游走 期望DP|高斯消元|贪心
- [BZOJ3143][Hnoi2013][概率与期望][高斯消元]游走
- BZOJ 3143 浅谈高斯消元解复数组期望方程
- 【BZOJ】3143: [Hnoi2013]游走 期望+高斯消元
- BZOJ_P3143 [HNOI2013]游走(贪心+高斯消元)
- bzoj 3143: [Hnoi2013]游走 高斯消元
- 【bzoj3143】[Hnoi2013]游走 高斯消元+期望方程
- BZOJ 3143 游走 高斯消元
- [BZOJ3143][Hnoi2013]游走(概率期望+高斯消元)
- 【BZOJ2460】【贪心】【拟阵】【高斯消元】[BeiJing2011]元素
- 【BZOJ3143】【Hnoi2013】游走 高斯消元 解期望方程
- [期望DP+高斯消元] BZOJ3143: [Hnoi2013]游走
- 【BZOJ 3143】【Hnoi2013】游走 期望+高斯消元
- [BZOJ2460][BeiJing2011]元素(贪心+高斯消元求线性基)
- bzoj 3143: [Hnoi2013]游走(高斯消元)
- 【BZOJ3105】【拟阵】【高斯消元】【贪心】[cqoi2013]新Nim游戏 题解