期望dp+高斯消元——bzoj3143
比较经典的题,题解看网上的。。https://www.cnblogs.com/GXZlegend/p/7054536.html
自己sort弄错了。。还以为是高斯消元写歪了。。
#include<bits/stdc++.h>
using namespace std; const int maxn = ;
const double esp = 1e-; struct Edge{int u,v;double E;}e[maxn*maxn];
int mp[maxn][maxn],d[maxn],n,m;
double E[maxn][maxn],b[maxn];
int cmp(Edge a,Edge b){return a.E>b.E;} void guass(){
for(int i=;i<=n;i++){
int maxx=i;
for(int j=i;j<=n;j++){
if(fabs(E[j][i])>esp&&fabs(E[j][i])>fabs(E[maxx][i]))maxx=j;
}
if(maxx!=i){
swap(E[maxx],E[i]);
swap(b[maxx],b[i]);
} if(fabs(E[i][i])<esp)continue;
for(int j=i+;j<=n;j++){
if(fabs(E[j][i])<esp)continue;
double rate=E[j][i]/E[i][i];
for(int k=i;k<=n;k++)
E[j][k]-=rate*E[i][k];
b[j]-=rate*b[i];
}
} for(int i=n;i>=;i--){
if(fabs(E[i][i])<esp)continue;
for(int j=i+;j<=n;j++)
b[i]-=E[i][j]*b[j];
b[i]/=E[i][i];
}
} int main(){
scanf("%d%d",&n,&m);
for(int i=;i<=m;i++){
int u,v;
scanf("%d%d",&u,&v);
mp[u][v]=mp[v][u]=;
d[u]++;d[v]++;
e[i].u=u;e[i].v=v;
} //建立矩阵
E[n][n]=b[]=;
for(int i=;i<n;i++){
E[i][i]=;
for(int j=;j<=n;j++)
if(mp[i][j])E[i][j]-=1.0/d[j];
}
guass(); for(int i=;i<=m;i++){
int u=e[i].u,v=e[i].v;
e[i].E=b[u]/d[u] + b[v]/d[v];
}
sort(e+,e++m,cmp);
double ans=;
for(int i=;i<=m;i++)
ans+=e[i].E*i;
printf("%.3lf\n",ans);
}
期望dp+高斯消元——bzoj3143的更多相关文章
- BZOJ_3143_[Hnoi2013]游走_期望DP+高斯消元
BZOJ_3143_[Hnoi2013]游走_期望DP+高斯消元 题意: 一个无向连通图,顶点从1编号到N,边从1编号到M. 小Z在该图上进行随机游走,初始时小Z在1号顶点,每一步小Z以相等的概率随机 ...
- 【BZOJ3143】[Hnoi2013]游走 期望DP+高斯消元
[BZOJ3143][Hnoi2013]游走 Description 一个无向连通图,顶点从1编号到N,边从1编号到M. 小Z在该图上进行随机游走,初始时小Z在1号顶点,每一步小Z以相等的概率随机选 ...
- bzoj3143 游走 期望dp+高斯消元
题目传送门 题意: 一个无向连通图,顶点从1编号到N,边从1编号到M. 小Z在该图上进行随机游走,初始时小Z在1号顶点,每一步小Z以相等的概率随机选 择当前顶点的某条边,沿着这条边走到下一个顶点,获得 ...
- BZOJ3143: [Hnoi2013]游走(期望DP 高斯消元)
Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 3597 Solved: 1618[Submit][Status][Discuss] Descript ...
- HDU 2262 Where is the canteen 期望dp+高斯消元
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2262 Where is the canteen Time Limit: 10000/5000 MS ...
- hdu4418 Time travel 【期望dp + 高斯消元】
题目链接 BZOJ4418 题解 题意:从一个序列上某一点开始沿一个方向走,走到头返回,每次走的步长各有概率,问走到一点的期望步数,或者无解 我们先将序列倍长形成循环序列,\(n = (N - 1) ...
- 【noi2019集训题1】 脑部进食 期望dp+高斯消元
题目大意:有n个点,m条有向边,每条边上有一个小写字母. 有一个人从1号点开始在这个图上随机游走,游走过程中他会按顺序记录下走过的边上的字符. 如果在某个时刻,他记录下的字符串中,存在一个子序列和S2 ...
- LightOJ 1151 Snakes and Ladders 期望dp+高斯消元
题目传送门 题目大意:10*10的地图,不过可以直接看成1*100的,从1出发,要到达100,每次走的步数用一个大小为6的骰子决定.地图上有很多个通道 A可以直接到B,不过A和B大小不确定 而且 ...
- P4457-[BJOI2018]治疗之雨【期望dp,高斯消元】
正题 题目链接:https://www.luogu.com.cn/problem/P4457 题目大意 开始一个人最大生命值为\(n\),剩余\(hp\)点生命,然后每个时刻如果生命值没有满那么有\( ...
随机推荐
- Install .NET Core Runtime on Linux Ubuntu 16.04 x64
原文链接https://www.microsoft.com/net/download/linux-package-manager/ubuntu16-04/runtime-current nstall ...
- Flatty Shadow图标自动产生器——在线生成各种扁平化 ICON
在扁平化风格越来越流行的今天,网页.软件界面和图标的设计大都采用了扁平化风格.特别是扁平化图标的设计,摒弃了一切3D元素的设计,阴影.纹理.透视神马的统统不要,让图标简洁高效,富有现代感. 今天给大家 ...
- element ui 弹出组件的遮罩层在弹出层的上面的解决方法
<el-dialog title="收货地址" :visible.sync="dialogFormVisible" :modal-append-to-bo ...
- eclipse 在复制/粘贴 时很卡(转)
最近发现eclipse在按Ctrl+C 时卡的要命,在网上找了一下,发现原来如此: 打开选项: Window -> Preferences -> General -> Editors ...
- EE5111_A0206839W
EE5111 Selected Topics in Industrial Control & Instrumentation Assessment: Implement a simple ...
- 内网端口转发[SSH]
一.应用场景 获取到目标边界机器linux服务器一台,想继而向内网其他机器渗透,获取到一台webshell发现处于内网当中且不通外网.可以通过linux ssh隧道对目标内网机器进行访问. 二.利用手 ...
- Spring 在Web中的应用
Spring 在Web中的应用 在web项目开发中,不会直接实例化ApplicationContext对象,如果想用到ApplicationContext,一般的步骤: 配置一个监听器ContextL ...
- 使用自己的Python函数处理Protobuf中的字符串编码
我目前所在的项目是一个老项目,里面的字符串编码有点乱,数据库中有些是GB2312,有些是UTF8:代码中有些是GBK,有些是UTF8,代码中转来转去,经常是不太清楚当前这个字符串是什么编码,由于是老项 ...
- C—变量—register
Tips 1.寄存器变量可以用来优化加速c语言程序 2.声名只需在类型前多加register 即可,eg register int quick; (quick 就是一个整形的寄存器变量) 3.regi ...
- hadoop.io.native.NativeID$Windows.access0 报错问题解决
系统:win10 hadoop-2.6.0版本 java:1.8 版本32位 wordcount在本地运行时报错: Exception in thread "main" jav ...