Vijos 1966 夜夜的旅游计划 高斯消元
2016-11-08 14:42
399 查看
题目链接:https://vijos.org/p/1966
代码:
代码:
#include <bits/stdc++.h> #define sf scanf #define pf printf using namespace std; const int maxn = 200 + 5; const double eps = 1e-7; double adj[maxn][maxn]; typedef double Matrix[maxn][maxn]; Matrix A; int ous[maxn]; void Gauss(Matrix A,int n){ int i,j,k,p; //消元 for(i = j = 0;i < n && j < n;++j){ k = i; for(p = i + 1;p < n;++p) if(fabs(A[p][j]) > fabs(A[k][j])) k = p; if(k != i) for(p = 0;p <= n;++p) swap(A[i][p],A[k][p]); for(k = 0;k < n;++k){ if(k != i && fabs(A[k][j]) > eps){ for(p = n;p >= j;--p){ A[k][p] = A[k][p] - A[i][p] / A[i][j] * A[k][j]; } } } ++i; } } int main(){ int n,m; sf("%d %d",&n,&m); memset(A,0,sizeof A); memset(adj,0,sizeof adj); memset(ous,0,sizeof ous); for(int i = 0;i < m;i++){ int u,v;double c; sf("%d %d %lf",&u,&v,&c);u--,v--; adj[u][v] = adj[v][u] = c; ous[u]++,ous[v]++; } for(int i = 0;i < n - 1;++i){ for(int j = 0;j < n;++j){ if(fabs(adj[i][j]) > eps){ A[i][j] = 1.0; A[i] -= adj[i][j]; } } A[i][i] -= 1.0 * ous[i]; } A[n - 1][n - 1] -= -1.0; A[n - 1] = 0; Gauss(A,n); pf("%.1f\n",A[0] / A[0][0] + eps); }
相关文章推荐
- 【Vijos 1966】 夜夜的旅游计划|期望DP|高斯消元|信心题QAQ
- vijos P1966 夜夜的旅游计划
- VIJOS 1052贾老二算算术 (高斯消元)
- 线性方程组(高斯消元)
- POJ1222高斯消元
- 高斯消元模板——整数参数型
- poj 2947 Widget Factory(模7环上的高斯消元)
- [poj1830][高斯消元]开关问题
- [POJ1830]开关问题(高斯消元)
- CodeForces 113D Museum (高斯消元)
- POJ 2947-Widget Factory(高斯消元解同余方程式)
- Cpp环境【NOI1994】【Vijos3266】最佳旅游路线
- HDU 5755 Gambler Bo(高斯消元裸题)——2016 Multi-University Training Contest 3
- hdu5544 Ba Gua Zhen(高斯消元)
- Painter's Problem POJ1681 高斯消元
- uva10828(高斯消元)
- poj 3185 贪心翻硬币 高斯消元
- poj 2947 高斯消元求解方程组取模
- 高斯消元1(解方程)
- Vijos训练计划 1-1 计数问题