HDU 5097 Page Rank(模拟,矩阵运算)
2014-11-16 11:49
351 查看
题目:Page Rank
题意:有点难读懂,我是跟着图YY的。
输入一个N*N的01矩阵A,先将它转换成类似图片里面的矩阵S。
具体做法是,对于第i行,求出1的个数cnt,然后如果A[i][j]是1,B[j][i]就等于1/cnt,否则等于0。注意这里i , j前后是相反的。
然后根据题目里面的公式求出G矩阵,U是一个全1的矩阵。
跟着就是搞一个q的N行1列的矩阵,按照题目要求迭代就行。
当然这里有个让人纳闷的地方,就是q的初始值的问题,貌似没说。我就随便全部设成1过了,不知道是不是无论什么初始值最后都会收敛到同一个地方还是怎么样。
题意:有点难读懂,我是跟着图YY的。
输入一个N*N的01矩阵A,先将它转换成类似图片里面的矩阵S。
具体做法是,对于第i行,求出1的个数cnt,然后如果A[i][j]是1,B[j][i]就等于1/cnt,否则等于0。注意这里i , j前后是相反的。
然后根据题目里面的公式求出G矩阵,U是一个全1的矩阵。
跟着就是搞一个q的N行1列的矩阵,按照题目要求迭代就行。
当然这里有个让人纳闷的地方,就是q的初始值的问题,貌似没说。我就随便全部设成1过了,不知道是不是无论什么初始值最后都会收敛到同一个地方还是怎么样。
#include<cstdio> #include<cstring> #include<cmath> const double alpha = 0.85; const double eps = 1e-10; const int N = 3010; int n; double mat , q[2] ; inline double sqr(double x){ return x*x; } bool ok(){ double s = 0.0; for(int i=0; i<n; i++) s += sqr(q[0][i]-q[1][i]); return fabs(s)<eps; } char s ; int main(){ while(~scanf("%d", &n)){ double b = (1.0-alpha)/n; for(int i=0; i<n; i++){ scanf("%s", s); int m = 0; for(int j=0; j<n; j++) m += s[j]-'0'; for(int j=0; j<n; j++){ mat[j][i] = s[j]=='0'?0.0:(1.0/m); mat[j][i] = mat[j][i]*alpha + b; } q[1][i] = 0.0; q[0][i] = 1.0; } bool f = 0; while(!ok()){ for(int i=0; i<n; i++){ q[f^1][i] = 0.0; for(int j=0; j<n; j++){ q[f^1][i] += mat[i][j] * q[f][j]; } } f^=1; } for(int i=0; i<n; i++){ if(i) putchar(' '); printf("%.2f", q[f][i]); } puts(""); } return 0; }
相关文章推荐
- HDOJ 题目5097 Page Rank(矩阵运算,模拟)
- HDOJ 题目5097 Page Rank(矩阵运算,模拟)
- HDU 5097 Page Rank(矩阵模拟)——2014上海全国邀请赛——题目重现(感谢上海大学提供题目)
- HDU 5097 Page Rank (模拟)
- hdoj 5097 Page Rank 【矩阵 模拟】
- HDU 3257 Hello World!(字符串找规律——位运算来模拟过程)
- FZU - 1061 矩阵连乘 【模拟运算--矩阵连乘】
- NOIP模拟 Matrix 矩阵运算
- HDU多校赛第9场 HDU 4965Fast Matrix Calculation【矩阵运算+数学小知识】
- hdu 2807 矩阵运算+最短路
- 2016HDU多校联赛-HDU-5734-Acperience(模拟分数运算)
- HDU 3209 Scales(模拟三进制运算)
- HDU 2807 The Shortest Path 矩阵运算+最短路
- 矩阵的运算的乘法次数(栈的模拟应用)
- 【矩阵】 HDOJ 5097 Page Rank
- HDU多校赛第9场 HDU 4965Fast Matrix Calculation【矩阵运算+数学小知识】
- hdu4119 模拟旋转矩阵mask解密
- HDU 1237 简单计算器 && 字符串模拟四则运算
- HDU-4471 Homework 矩阵运算上的优化
- hdu 4382 模拟 矩阵连乘 高精度