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的更多相关文章
随机推荐
- AutoEncoders变种
目录 PCA V.S. Auto-Encoders Denoising AutoEncoders Dropout AutoEncoders PCA V.S. Auto-Encoders deep au ...
- Python之协程函数
Python之协程函数 什么是协程函数:如果一个函数内部yield的使用方法是表达式形式的话,如x=yield,那么该函数成为协程函数. def eater(name): print('%s star ...
- Quartz --Scheduler
- UVa 11998 破碎的键盘(数组实现链表)
题意: 输入一行字符,其中包含'[' 和 ‘]’, 意思为键盘上的home 和 end 键, 然后模拟字符在键盘上输入. 输入一行最终的结果 分析: 用数组模拟一个链表, 在链表的头尾插入字母然后输出 ...
- NRF24L01注意点
nrf24L01被设置为接收模式后,可通过6个不同的数据通道(data pipe)接收数据. 每个数据通道都有一个唯一的地址但是各数据通道的频率是相同的.这意味着可以有6个被配置成发送状态的nRF24 ...
- 子集和的目标值(codevs 1692)
题目描述 Description 给定n个整数in和目标值T,求某一非空子集使 子集的元素的和 与 目标值之差 的绝对值最小,元素可重复 输入描述 Input Description 第一行为整数n ...
- 【IntelliJ】IntelliJ IDEA的安装破解及使用
结合两位大牛CV的,写的很全面,仅供自己使用 转载地:http://www.jianshu.com/p/ad3830095fb3 https://www.cnblogs.com/kangjianwei ...
- 通过setContentView设置activity的不同样式
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle saved ...
- 类(Class)
类 · 目的 面向对象的最主要目的是提高程序的重复使用性. · 包括 属性(attribute).方法(method) · 示例 class Bird(object): have_feather = ...
- Java DynamoDB 增加、删除、修改、查询
准备jar包 <dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-java-sd ...