FZU-2192 位置信息挖掘
2017-08-11 12:30
190 查看
C - 位置信息挖掘
FZU- 2192
O2O即Online To Offline,是指将线下的商务机会与互联网结合,让互联网成为线下交易的前台。这些商务机会主要是偏服务类的商品,例如汽车售后服务、摄影服务、餐饮、电影等,其特色是线上购买、线下服务。
因此,对这类垂直行业的商品做移动推荐时,用户和商品的位置信息显得格外重要。但是,可能存在用户、商品的位置信息缺失的情况,例如:用户不共享位置信息、商家未填写位置信息……
现在,Jason给出用户在移动端的购买行为数据,以及商品集合,希望能补全一些缺失的位置信息。为了简化问题,假设:
1、由于是服务类的商品,如果用户位于城市A,那么该用户只会购买位于城市A的商品。
2、数据不存在噪声,即测试数据都是合法的。
Input
包含多组数据
每组输入数据格式如下:
第一行,三个数:N、M、Q,表示N个商品,M条购买行为数据,Q个询问。
接下来N行,每行两个数:itemId、cityId,表示商家填写的服务itemId,位于城市cityId。
接下来M行,每行三个数:userId、itemId、cityId,表示用户userId购买了服务itemId,移动端定位城市cityId。
接下来Q行,每行两个数:0、itemId或者1、userId,表示询问服务itemId所在的城市,或者用户userId所在的城市。
注意:0表示位置信息缺失。
Output
每组输出数据格式如下: Q行,每行一个数:cityId,表示服务itemId位于cityId,或者用户userId位于cityId。
Sample Input
3 2 5 2 0 3 0 1 3 2 2 2 1 1 0 0 1 0 2 0 3 1 1 1 2
Sample Output
3 2 0 3 2
Hint
1<=N<=LIMIT
1<=M<=LIMIT
1<=Q<= N+M
1<=itemId<=N
1<=userId<=M
0<=cityId<=N+M,0表示位置信息缺失
对于60%的数据,LIMIT<=10^2;对于100%的数据,LIMIT<=10^5
并查集
#include <iostream>
#include <cstdio>
#include <cstring>
#include <set>
#include <algorithm>
typedef long long LL;
using namespace std;
int fa[100100]={0};
int num[100100];
int find(int);
int main()
{
int n,m,q;
while(scanf("%d%d%d",&n,&m,&q)!=EOF)
{
for(int i=0;i<=n+m;i++)fa[i]=i,num[i]=0;//n以后是用户的编号 fa[i]=i means i与i同属一个城市;
int it,ci,us;
for(int i=0;i<n;i++)
{
scanf("%d%d",&it,&ci);
if(ci)num[it]=ci;
}
for(int i=0;i<m;i++)
{
scanf("%d%d%d",&us,&it,&ci);
us+=n;
if(ci)num[us]=ci;
int fx=find(us);//找与us同一个城市
int fy=find(it);//找与it同一个城市
if(ci)num[fx]=ci;
fa[fx]=fy; //fx 与fy同一个城市
if(num[fy]==0)num[fy]=num[fx];
}
while(q--)
{
int ask;
scanf("%d%d",&ask,&it);
if(ask)it+=n;
printf("%d\n",num[find(it)]);
}
}
}
int find(int x)
{
if(fa[x]==x)return x;
else return fa[x]=find(fa[x]);
}
相关文章推荐
- FZU 2192 位置信息挖掘 (并查集或暴力)
- FZU 2192 位置信息挖掘 (种类并查集)
- C - 位置信息挖掘 FZU - 2192-并查集
- 数据挖掘工程师:如何通过百度地图API抓取建筑物周边位置、房价信息
- X - 位置信息挖掘
- 位置信息挖掘
- 数据挖掘:如何通过百度地图API抓取物体周边地理位置信息
- 纽约警察局从社交网络中数据挖掘犯罪活动信息
- 用百度SDK获取地理位置和天气信息
- JavaScript基础--小案例:在网页指定位置弹出错误信息(十二)
- 调查发现超过一半的用户愿意透露地理位置获取优惠信息
- AE根据记录信息获得地图元素信息并定位地图位置
- jquery.validate,错误信息位置
- 找出一个二维数组中的“鞍点”,即该位置上的元素在该行中最大,在该列中最小(也可能没鞍点),打印出有关信息。
- 机器学习: 专家系统、认知模拟、规划和问题求解、数据挖掘、网络信息服务、图象识别、故障诊断、自然语言理解、机器人和博弈等领域。
- struts2验证框架将验证信息输出到指定位置
- LBS(基于位置的服务)用户数据挖掘
- .net中的数据连接信息的位置
- PHP微信开发之根据用户回复关键词\位置返回附近信息
- HTML5获取位置信息