【矩阵】 HDOJ 5097 Page Rank
2014-11-03 15:41
260 查看
暴力就行了。。。
#include <iostream> #include <queue> #include <stack> #include <map> #include <set> #include <bitset> #include <cstdio> #include <algorithm> #include <cstring> #include <climits> #include <cstdlib> #include <cmath> #include <time.h> #define maxn 20005 #define maxm 4000005 #define eps 1e-10 #define mod 1000000007 #define INF 1e9 #define lowbit(x) (x&(-x)) #define mp make_pair #define ls o<<1 #define rs o<<1 | 1 #define lson o<<1, L, mid #define rson o<<1 | 1, mid+1, R typedef long long LL; typedef unsigned long long ULL; //typedef int LL; using namespace std; char g[3005][3005]; double mat[3005][3005]; double res[2][3005]; int n; void read(void) { for(int i = 1; i <= n; i++) scanf("%s", g[i] + 1); } bool check(void) { double ans = 0; for(int i = 1; i <= n; i++) ans += (res[0][i] - res[1][i]) * (res[0][i] - res[1][i]); if(ans < 1e-3) return true; else return false; } void work(void) { memset(mat, 0, sizeof mat); for(int i = 1; i <= n; i++) { int t = 0; for(int j = 1; j <= n; j++) if(g[i][j] == '1') t++; for(int j = 1; j <= n; j++) if(g[i][j] == '1') mat[j][i] = 1.0 / t; } for(int i = 1; i <= n; i++) for(int j = 1; j <= n; j++) mat[i][j] = 0.85 * mat[i][j] + 0.15 * 1.0 / n; int now = 0; for(int i = 1; i <= n; i++) res[now][i] = 1.0; while(1) { memset(res[now^1], 0, sizeof res[now^1]); for(int i = 1; i <= n; i++) for(int j = 1; j <= n; j++) res[now^1][i] += res[now][j] * mat[i][j]; now ^= 1; if(check()) break; } for(int i = 1; i <= n; i++) printf("%.2f%c", res[now][i], i == n ? '\n' : ' '); } int main(void) { while(scanf("%d", &n)!=EOF) { read(); work(); } return 0; }
相关文章推荐
- HDOJ 题目5097 Page Rank(矩阵运算,模拟)
- HDOJ 题目5097 Page Rank(矩阵运算,模拟)
- hdoj 5097 Page Rank 【矩阵 模拟】
- HDU 5097 Page Rank(模拟,矩阵运算)
- HDU 5097 Page Rank(矩阵模拟)——2014上海全国邀请赛——题目重现(感谢上海大学提供题目)
- hdoj.1559 最大子矩阵 20140813
- HDOJ 题目1575 Tr A(矩阵相乘,二分)
- hdoj 4686 Arc of Dream 【矩阵快速幂】
- [矩阵快速幂]HDOJ4565 So Easy!
- 第一次写的矩阵的快速幂HDOJ1005
- hdoj-1575-Tr A【矩阵快速幂】
- hdoj 4686 Arc of Dream(矩阵快速幂)
- hdoj 2256 Problem of Precision 【矩阵快速幂】【构建矩阵好题】
- hdoj 2855 Fibonacci Check-up 【打表找规律 + 矩阵快速幂】
- hdoj 5895 Mathematician QSC 【数论----矩阵快速幂求解类斐波那契数列】
- HDOJ 4549 M斐波那契数列 矩阵快速幂+欧拉降幂公式
- [HDOJ2604]Queuing(递推,矩阵快速幂)
- hdoj 5015 233 Matrix(矩阵的构造)
- HDOJ——5171(矩阵乘方)
- HDOJ-1181 字符串首尾相连问题[DFS()+字符串排序strcmp()||▲矩阵标记]