HDOJ 题目5097 Page Rank(矩阵运算,模拟)
Page Rank
Time Limit: 3000/1500 MS (Java/Others) Memory Limit: 100000/100000 K (Java/Others)
Total Submission(s): 280 Accepted Submission(s): 75
of "measuring" its relative importance within the set. The algorithm may be applied to any collection of entities with reciprocal quotations and references. The numerical weight that it assigns to any given element E is referred to as the PageRank of E and
denoted by . Other factors like Author Rank can contribute to the importance of an entity.
For simplicity, in this problem PageRank vector q is defined as q = Gq, Where
, S is the destination-by-source stochastic matrix, U is all one matrix, n is the number ofnodes and α is the weight between 0 and 1 (here we use 0.85).
For the example on the right, we have:

Denote the current PageRank vector and the next PageRank vector by qcur and qnext respectively. The process is to compute the iterative powering for finding the first eigenvector.

The computation ends until
for some small ε(10-10).For each case, there are multiple lines. The first line contains an integer N(N<=3000), which represents the number of pages. Then a N*N zero-one matrix follows. The element Eij (0 <= i, j < N) on the matrix represents whether the i-th page has a
hyper link to the j-th page.
4
0111
0011
0001
0100
0.15 1.49 0.83 1.53
pid=5379" target="_blank" style="color:rgb(26,92,200); text-decoration:none">5379
pid=5378" target="_blank" style="color:rgb(26,92,200); text-decoration:none">5378
pid=5377" target="_blank" style="color:rgb(26,92,200); text-decoration:none">5377
pid=5376" target="_blank" style="color:rgb(26,92,200); text-decoration:none">5376
pid=5375" target="_blank" style="color:rgb(26,92,200); text-decoration:none">5375
Problem : 5097 ( Page Rank ) Judge Status : Accepted
RunId : 14492913 Language : C++ Author : lwj1994
Code Render Status : Rendered By HDOJ C++ Code Render Version 0.01 Beta
#include<stdio.h>
#include<string.h>
#include<math.h>
#define eps 1e-10
char map[3030];
double ans[3030][3030];
double q[2][3030];
int n;
void muti(double a[][3030],double num)
{
int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
a[i][j]*=num;
}
}
void add(double a[][3030],double b[][3030])
{
int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
a[i][j]+=b[i][j];
}
}
int jud()
{
double ans=0;
int i;
for(i=0;i<n;i++)
{
ans+=(q[0][i]-q[1][i])*(q[0][i]-q[1][i]);
}
//ans=sqrt(ans);
if(fabs(ans)<eps)
return 1;
return 0;
}
int main()
{
//int n;
while(scanf("%d",&n)!=EOF)
{
int i,j;
double a=0.85;
memset(ans,0,sizeof(ans));
for(i=0;i<n;i++)
{
int sum=0;
scanf("%s",&map);
for(j=0;j<n;j++)
{
if(map[j]=='1')
sum++;
//U[i][j]=1;
}
for(j=0;j<n;j++)
{
if(map[j]=='1')
ans[j][i]=1.0/sum;
}
}
muti(ans,a);
// muti(U,1.0/n*(0.15));
// printf("\n");
// add(ans,U);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
ans[i][j]+=(0.15/n);
int p=0;
for(i=0;i<n;i++)
{
q[p][i]=1;
q[p^1][i]=0;
}
//mmuti(q[p],ans,q[p^1]);
//p^=1;
while(!jud())
{
//q[p^1]=mmuti(q[p],ans);
for(i=0;i<n;i++)
{
q[p^1][i]=0;
for(j=0;j<n;j++)
q[p^1][i]+=q[p][j]*ans[i][j];
}
p^=1;
}
printf("%.2lf",q[p][0]);
for(i=1;i<n;i++)
{
printf(" %.2lf",q[p][i]);
}
printf("\n");
}
}
HDOJ 题目5097 Page Rank(矩阵运算,模拟)的更多相关文章
- HDU 5097 Page Rank (模拟)
题目背景是以前用来对网页进行排名的Page Rank算法,是早期Google的革命性发明. 背后的原理是矩阵和图论.这个数学模型是由Google的创始人拉里·佩奇和谢尔盖·布林发现的. 如果一个网页被 ...
- 杭电hdoj题目分类
HDOJ 题目分类 //分类不是绝对的 //"*" 表示好题,需要多次回味 //"?"表示结论是正确的,但还停留在模块阶 段,需要理解,证明. //简单题看到就 ...
- HDOJ 题目分类
HDOJ 题目分类 /* * 一:简单题 */ 1000: 入门用:1001: 用高斯求和公式要防溢出1004:1012:1013: 对9取余好了1017:1021:1027: ...
- [IR课程笔记]Page Rank
主要目的: 在网络信息检索中,对每个文档的重要性作出评价. Basic Idea: 如果有许多网页链接到某一个网页,那么这个网页比较重要. 如果某个网页被一个权重较大的网页链接,那么这个网页比较重要. ...
- 【HDOJ】5096 ACM Rank
Treap+set仿函数重定义.每当ac一道题目时,相当于对总时间减去一个大数. /* 5096 */ #include <iostream> #include <string> ...
- HDOJ题目分类
模拟题, 枚举1002 1004 1013 1015 1017 1020 1022 1029 1031 1033 1034 1035 1036 1037 1039 1042 1047 1048 104 ...
- HDOJ 题目2475 Box(link cut tree去点找祖先)
Box Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- HDOJ 题目3518 Boring counting(后缀数组,求不重叠反复次数最少为2的子串种类数)
Boring counting Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- HDOJ 题目2474 String painter(区间DP)
String painter Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)To ...
随机推荐
- Flink之流处理理论基础
目录 Introduction to Stateful Stream Processing Traditional Data Infrastructures Stateful Stream Proce ...
- poj3233Matrix Power Series(矩阵乘法)
Matrix Power Series Time Limit: 3000MS Memory Limit: 131072K Total Submissions: 23187 Accepted: ...
- [Apple开发者帐户帮助]二、管理你的团队(1)邀请团队成员
组织可以选择向其开发团队添加其他人员.如果您已加入Apple开发者计划,您将在App Store Connect中管理团队成员.有关详细信息,请转到在App Store Connect帮助中添加用户. ...
- selenium3 + python - table定位
前言 在web页面中经常会遇到table表格,特别是后台操作页面比较常见.本篇详细讲解table表格如何定位. 一.认识table 1.首先看下table长什么样,如下图,这种网状表格的都是table ...
- 修改DIV滚动条样式
/*滚动条样式*/ div::-webkit-scrollbar { /*滚动条整体样式*/ width: 5px; /*高宽分别对应横竖滚动条的尺寸*/ height: 5px; } div::-w ...
- Cracking the Coding Interview 10.7
Design an algorithm to find the kth number such that the only prime factors are 3,5 and 7 方法一: a[i]= ...
- Oracle 循环调用存储过程
create or replace procedure p_test_loop as --定义一个游标,并将查询结果集赋值给它 CURSOR c1 IS select * from tbltest w ...
- 后端springmvc,前端html5的FormData实现文件断点上传
前言 最近项目中有使用到文件断点上传,得空便总结总结,顺便记录一下,毕竟“好记性不如烂笔头”. 后端代码: package com.test.controller; import java.io.Bu ...
- page事件
using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Secu ...
- jQuery的基本概念与高级编程
年创建的一个年月面世的1.5.2版本.作为一个JavaScript库,jQuery极大程度上解决了浏览器的兼容性问题,能够在IE 6.0 +.FF 2.0 +.Safari 3.0 +.Opera 9 ...