BZOJ 3143 高斯消元+贪心....
思路:
先算一下每条边经过次数的期望 转化为每个点经过次数的期望
边的期望=端点的期望/度数
统计一下度数 然后高斯消元
贪心附边权…….
//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[n][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 高斯消元+贪心....的更多相关文章
- P3265 [JLOI2015]装备购买(高斯消元+贪心,线性代数)
题意; 有n个装备,每个装备有m个属性,每件装备的价值为cost. 小哥,为了省钱,如果第j个装备的属性可以由其他准备组合而来.比如 每个装备属性表示为, b1, b2.......bm . 它可以由 ...
- [HNOI2013] 游走 - 概率期望,高斯消元,贪心
假如我们知道了每条边经过的期望次数,则变成了一个显然的贪心.现在考虑如何求期望次数. 由于走到每个点后各向等概率,很显然一条边的期望次数可以与它的两个端点的期望次数,转化为求点的期望次数 考虑每个点对 ...
- BZOJ 1013 & 高斯消元
题意: 告诉你一个K维球体球面上的K+1个点问球心坐标. sol: 乍一看还以为是K维的二分答案然后判断距离...真是傻逼了...你看乱七八糟的题目做多了然后就会忘记最有用的基本计算... 我们可以看 ...
- BZOJ 3503 高斯消元
思路: 高斯消元就好啦 注意每个格子最多只能和4个相邻 所以是 n*m*n*m*5 的 并不会TLE //By SiriusRen #include <cstdio> #include & ...
- BZOJ 4004 高斯消元
思路: 排个序 消元 完事~ 但是! 坑爹精度毁我人生 我hhhh他一脸 红红火火恍恍惚惚 //By SiriusRen #include <cmath> #include <cst ...
- 【BZOJ 4004】 装备购买(高斯消元+贪心)
装备购买 题目 脸哥最近在玩一款神奇的游戏,这个游戏里有 n 件装备,每件装备有 m 个属性,用向量zi(aj ,.....,am) 表示 (1 <= i <= n; 1 <= j ...
- bzoj 2337 高斯消元+概率DP
题目大意: 每条路径上有一个距离值,从1走到N可以得到一个所有经过路径的异或和,求这个异或和的数学期望 这道题直接去求数学期望的DP会导致很难列出多元方程组 我们可以考虑每一个二进制位从1走到N的平均 ...
- BZOJ 2844 高斯消元 线性基
思路: //By SiriusRen #include <cstdio> #include <cstring> #include <algorithm> using ...
- BZOJ 4269 高斯消元求线性基
思路: 最大: 所有线性基异或一下 次大: 最大的异或一下最小的线性基 搞定~ //By SiriusRen #include <cstdio> #include <algorith ...
随机推荐
- [Angular] Read Custom HTTP Headers Sent by the Server in Angular
By default the response body doesn’t contain all the data that might be needed in your app. Your ser ...
- Hive分区表与分桶
分区表 在Hive Select查询中.通常会扫描整个表内容,会消耗非常多时间做不是必需的工作. 分区表指的是在创建表时,指定partition的分区空间. 分区语法 create table tab ...
- Cocos2d-x-lua学习点滴
Lua下的方法.自己项目经验,个人见解,不能确保正确. Sprite: local Light = CCSprite:create("light.png") ...
- Java虚拟机的类载入机制
Java虚拟机类载入过程是把Class类文件载入到内存.并对Class文件里的数据进行校验.转换解析和初始化,终于形成能够被虚拟机直接使用的java类型的过程. 在载入阶段,java虚拟机须要完毕下面 ...
- Java Swing 托盘闪烁Demo实例
桌面程序当中,托盘显示是一个常用的功能. C#的WinForm程序要实现托盘是挺轻松的,而Java Swing要实现这个功能虽然也不难, 但是由于Java Swing开发者或许没有C#多,所以看到很多 ...
- 简述Sql Server中常用的数据库对象(面试题)
1.表(Table ) 数据库中的表与我们日常生活中使用的表格类似,它也是由行(Row) 和列(Column)组成的.列由同类的信息组成,每列又称为一个字段,每列的标题称为字段名.行包括了若干列信息项 ...
- C#生成高清缩略图 (装在自OPEN经验库)
来源 http://www.open-open.com/lib/view/open1389943861320.html 代码如下实现图片的高清缩略图 /// <summary> /// 为 ...
- hiho151周*
题目链接 题目大意:依次在给定的三维坐标上垒方块,对于一个新的坐标需满足两个条件 1:六个方向有相邻的方块或者z==1[题目说明了初始状态是:所有z==0的位置都有方块] 2:该位置存在一条到无穷远处 ...
- fastdfs+nginx的安装部署
原理图: fastdfs适用场景: fastdfs特别适合海量 中小文件(建议范围:4KB< file_size <500MB)为载体的在线服务. 安装系统介绍: CentOS6.6 安装 ...
- 优动漫PAINT-牵牛花画法教程
喇叭型对画者自身的塑形功力会有较高的要求,作者很靠谱的把他的塑形方式详细呈现了出来~ 对于这样的一个仿真效果的牵牛花完全可以使用优动漫PAINT完成,简单又快捷,软件下载:http://www.don ...