http://www.bnuoj.com/bnuoj/problem_show.php?pid=20838

【题意】:

  有点长,略。

【code】:

  

 #include <iostream>
#include <stdio.h>
#include <string>
#include <string.h>
#include <math.h>
#include <algorithm> using namespace std; double rat[][];
double drat[][]; struct Nod
{
int id;
double rt;
}node[]; int m,n; bool cmp(Nod a,Nod b)
{
return a.rt>b.rt;
} double getAns(int a,int b)
{
int i;
double sum=;
for(i=;i<=n;i++)
{
if(rat[i][a]>&&rat[i][b]>)
{
sum+=(rat[i][a]-rat[i][b])*(rat[i][a]-rat[i][b]);
}
}
return 1.0/(sum+);
} void getDrat()
{
int i,j;
for(i=;i<=m;i++)
{
drat[i][i]=;
for(j=i+;j<=m;j++)
{
drat[i][j]=drat[j][i]=getAns(i,j);
}
}
} int main()
{
int c;
scanf("%d%d%d",&n,&m,&c);
memset(rat,,sizeof(rat));
while(c--)
{
int a,b;
scanf("%d%d",&a,&b);
scanf("%lf",&rat[a][b]);
}
getDrat();
int x;
while(~scanf("%d",&x))
{
printf("Recommendations for user %d:\n",x);
int i,cnt=,j;
double down=,up=;
for(i=;i<=m;i++)
{
if(rat[x][i]==)//i=6
{
down=,up=;
for(j=;j<=m;j++)
{
if(rat[x][j]>)
{
down+=drat[i][j];
up+=drat[i][j]*rat[x][j];
}
}
node[cnt].id = i;
node[cnt].rt = up/down;
cnt++;
}
}
sort(node,node+cnt,cmp);
for(i=;i<cnt&&i<;i++)
{
printf("%d %.3lf\n",node[i].id,node[i].rt);
}
putchar();
}
return ;
}

bnuoj 20838 Item-Based Recommendation (模拟)的更多相关文章

  1. bnuoj 29373 Key Logger(模拟双向队列)

    http://www.bnuoj.com/bnuoj/problem_show.php?pid=29373 [题意]:模拟光标输入 [题解]:用双向列表模拟实现,这里用其他模拟会超时,注意内存的释放 ...

  2. (转) Quick Guide to Build a Recommendation Engine in Python

    本文转自:http://www.analyticsvidhya.com/blog/2016/06/quick-guide-build-recommendation-engine-python/ Int ...

  3. Recommendation system

    Dear Prof.Choi: My research interest is mainly the application and optimization of big data and arti ...

  4. 论文笔记: Deep Learning based Recommender System: A Survey and New Perspectives

    (聊两句,突然记起来以前一个学长说的看论文要能够把论文的亮点挖掘出来,合理的进行概括23333) 传统的推荐系统方法获取的user-item关系并不能获取其中非线性以及非平凡的信息,获取非线性以及非平 ...

  5. Understanding Item Import and Debugging Problems with Item Import (Doc ID 268968.1)

    In this Document Purpose Details   Scenario 1: Testing the basic item import with minimum columns po ...

  6. Use of Deep Learning in Modern Recommendation System: A Summary of Recent Works(笔记)

    注意:论文中,很多的地方出现baseline,可以理解为参照物的意思,但是在论文中,我们还是直接将它称之为基线,也 就是对照物,参照物. 这片论文中,作者没有去做实际的实验,但是却做了一件很有意义的事 ...

  7. c#取得post和get的数据和模拟发送

    可以放在控制器的入口函数中,这样载入就会被调用 asp.net mvc,get+post: public ActionResult Index() { ) { foreach (var item in ...

  8. PyQt学习随笔:Qt中tem Views(Model-Based)和Item Widgets(Item-Based)控件的用途和关系

    在界面程序开发中,数据的展示主要包括表格.简单列表.树状列表以及纯文本等多种方式,在Qt中将界面表格.简单列表.树状列表称为"表项视图类(item view class)",并提供 ...

  9. Mahout推荐算法API详解

    转载自:http://blog.fens.me/mahout-recommendation-api/ Hadoop家族系列文章,主要介绍Hadoop家族产品,常用的项目包括Hadoop, Hive, ...

随机推荐

  1. hdu 4669 动态规划

    思路:主要就是一个动态方程dp[now][(j*Exp[len[num[i]]]+num[i])%k]+=dp[pre][j];我用的是滚动数组.其实也就是dp[i][(j*Exp[len[num[i ...

  2. 转:android 设计模式合集

    转: http://mobile.51cto.com/android-419145.htm

  3. VSX规划Package文件

    VSX是VS扩展,可以针对不同项目编写插件,虽然接触VSX的时间并不多,但是当了解VSX后深刻感受到VSX的魅力. VSX的材料比较少,配置文件也很繁琐,当初我也走了不少弯路. 这篇文章将帮助您更好的 ...

  4. Tomcat - 设置 HTTP 基本认证

    在 Tomcat 中设置 HTTP 基本认证的示例 在 $TOMCAT_HOME\conf\tomcat-users.xml 文件中配置角色和用户: <tomcat-users> < ...

  5. React-Native错误笔记-EPERM

    运行react-native run-android时出现错误 EPERM:operation not permitted,lstat .............. 解决办法:用Android Stu ...

  6. CentOS6.3系统安装SCP命令

    原文:http://www.111cn.net/sys/CentOS/58387.htm CP使用SSH协议在Linux系统中进行文件传输,但我最小安装的CentOS 6.3没有该命令.  代码如下 ...

  7. java比.net优美的一个小地方

    用了四年的.net,今年转做java,内心一直吐槽java的烦琐,今天发现了一个java值得我为之点赞的地方 java的枚举居然可以这么玩,废话不多,上demo package com.sunline ...

  8. sqlserver 大文件脚本执行

    sqlserver2008中需要执行大文件的脚本,查询分析器中打不开,需要用到sql命令,开始使用osql命令,不过提示对应sqlserver2008中的驱动找不到(具体原因未分析-空闲时在处理),使 ...

  9. Java编程思想之字符串

    来自:Java编程思想(第四版) 第十三章 字符串   字符串操作是计算机程序中最常见的行为.   String对象是不可变的.查看JDK文档你就会发现,String类中每一个看起来会修改String ...

  10. xamarin android——数据绑定到控件(三)

    如果当前活动中,只存在一个listview视图,可以借助ListActivity快速的实现一个列表,即当前Activity继承ListActivity.在OnCreate方法中简单的两行代码,就可以创 ...