bzoj2419
http://www.lydsy.com/JudgeOnline/problem.php?id=2419
∑Ui−UjRi,j=0∑Ui−UjRi,j=0
∑U1−UjR1,j=1∑U1−UjR1,j=1
∑Un−UjRi,n=−1∑Un−UjRi,n=−1
Un=0
这就是方程了。。。但是代码有点不理解
#include<bits/stdc++.h>
using namespace std;
const int N = ;
double a[N][N], g[N][N];
int n, m;
void build()
{
for(int i = ; i <= n; ++i)
for(int j = ; j <= n; ++j)
a[i][i] += g[i][j], a[i][j] -= g[i][j];
a[][n + ] = 1.0;
a[n][n + ] = -1.0;
a[n][n] += 1.0;
}
void gauss_jordan()
{
for(int now = ; now <= n; ++now)
{
int x = now;
for(int i = now + ; i <= n; ++i) if(fabs(a[i][now]) > fabs(a[x][now])) x = i;
for(int i = ; i <= n + ; ++i) swap(a[now][i], a[x][i]);
double t = a[now][now];
for(int i = now; i <= n + ; ++i) a[now][i] /= t;
for(int i = ; i <= n; ++i) if(i != now)
{
double t = a[i][now];
for(int j = now; j <= n + ; ++j) a[i][j] -= t * a[now][j];
}
}
}
int main()
{
while(scanf("%d%d", &n, &m) != EOF)
{
memset(a, , sizeof(a));
memset(g, , sizeof(g));
for(int i = ; i <= m; ++i)
{
int u, v; double r; scanf("%d%d%lf", &u, &v, &r);
if(u == v) continue;
g[u][v] += 1.0 / r; g[v][u] += 1.0 / r;
}
build();
gauss_jordan();
printf("%.2f\n", a[][n + ]);
}
return ;
}
bzoj2419的更多相关文章
随机推荐
- Codeforces450 B. Jzzhu and Sequences
B. Jzzhu and Sequences time limit per test 1 second memory limit per test 256 megabytes input standa ...
- Spring核心技术(六)——Spring中Bean的生命周期
前文已经描述了Bean的作用域,本文将描述Bean的一些生命周期作用,配置还有Bean的继承. 定制Bean 生命周期回调 开发者通过实现Spring的InitializeingBean和Dispos ...
- [luoguP1040] 加分二叉树(DP)
传送门 区间DP水题 代码 #include <cstdio> #include <iostream> #define N 41 #define max(x, y) ((x) ...
- 运算符、流程控制、while循环
运算符: 1. 算术运算符: “ + ”.“ - ” .“ * ” .“ / ” 分别为加.减.乘.除. # % 是“取模运算符”,就是返回除法的余数.eg. a = 3, b=5, b % a 就是 ...
- Linux网络设置
==========================网络设置========================== 1.IP地址 临时:ifconfig 192.168.124.129 永久: vi / ...
- Thinkphp5.0 的使用模型Model的获取器与修改器
Thinkphp5.0 的使用模型Model的获取器.修改器.软删除 一.获取器 在model中使用 get+字段名+Attr,可以修改字段的返回值. 数据库中性别保存为,0未知.1男.2女,查询时返 ...
- CI设置表单验证规则
CodeIgniter 允许你为单个表单域创建多个验证规则,按顺序层叠在一起, 你也可以同时对表单域的数据进行预处理.要设置验证规则, 可以使用 set_rules() 方法: $this->f ...
- dstat用法;利用awk求dstat所有列每列的和;linux系统监控
安装:yum install -y dstat dstat命令是一个用来替换vmstat.iostat.netstat.nfsstat和ifstat这些命令的工具,是一个全能系统信息统计工具.与sys ...
- A* Pathfinding Project (Unity A*寻路插件) 使用教程
Unity4.6 兴许版本号都已经内置了寻路AI了.之前的文章有介绍 Unity3d 寻路功能 介绍及项目演示 然而两年来项目中一直使用的是 A* Pathfinding 这个插件的.所以抽时间来写下 ...
- mysql改动默认的环境的字符集为utf-8
mysql改动环境的默认字符集为utf-8(当然你也能够设置成别的,国际点还是utf-8好) 假设不把mysql字符集统一下.后面还是有点麻烦的 首先得在服务里关掉mysql的服务(一定要先关掉mys ...