Description

Jack同学在人人网上注册了一个用户,发现人人网需要回答一些问题,而后网站根据自己的回答向自己推荐了一些具有相似回答的网友。Jack同学恰好正在学习编程,想编写一个程序来模拟这个好友推荐功能。

为了实现这一目标,Jack同学是这样设想的:假定网络中的注册用户不超过N个,每位用户注册时需回答M个问题(每个问题都是选择题,且是单选),并指定一个阈值Q。设Tom和Mary是两个注册用户,而且Tom和Mary设定的阈值分别是Q1和Q2,那么:

(1)当且仅当Tom与Mary对M个问题的回答有不少于Q1个是相同答案时,才可以向Tom推荐Mary。

(2)当且仅当Tom与Mary对M个问题的回答有不少于Q2个是相同答案时,才可以向Mary推荐Tom。

现在,我们已经知道了N个用户对M个问题的答案以及设定的阈值Q,请帮Jack设计一个程序来模拟好友推荐功能。

Input

输入是多行的。第一行包含两个整数,分别是N和M的值,代表用户个数及问题个数,且0<N<=100、0<M<=20。

从第二行开始,每行表示一个用户给出的M个问题的答案。其中第一个字符串是用户名(不超过20个字符,且仅含字母、数字和下划线);之后是一个空格和M个大写字母A~Z,第j个字母表示该用户的第j个答案,而且两个字母之间用一个空格隔开;最后是一个整数,表示该用户设定的阈值。

比如在Sample Input中,有5名用户,10个问题。用户是Jack、Tom、Jackson、Mammal_1、Bill_Gates。其中Tom给出的10个问题的答案是A B C D E A B A D E,且指定的阈值是9。

Output

输出也是多行,每一行代表为一个用户推荐的好友列表。其顺序与输入顺序相同:即按照输入的用户名顺序给出为每个用户推荐的好友。

每一行的格式是:第一个字符串是用户名,之后是好友列表,两者之间用冒号隔开。好友列表是向该行指定的用户推荐的好友用户名,按照输入顺序顺次输出好友的用户名。如果该行指定的用户没有可以推荐的好友,则输出“NONE!”。

输出的对齐要求是:每行指定的用户名(即向其推荐好友的用户名)的输出宽度是所有用户中最长的用户名占用的宽度,且左对齐。好友列表中的用户名的输出宽度是用户名的实际宽度,且两两之间用逗号(半角)隔开。

Sample Input

5 10

Bill_Gates A A A A A B B B B B 3

Tom A B C D E A B A D E 9

Jackson A A A A A B B B B B 4

Mammal_1 B B B B B B B B B B 6

Jack A B A D E A B C A E 5

Sample Output

Bill_Gates:Jackson,Mammal_1,Jack

Tom :NONE!

Jackson :Bill_Gates,Mammal_1

Mammal_1 :NONE!

Jack :Tom

HINT

每个用户指定的阈值是不同的,所以可以向Tom推荐Mary,不代表可以向Mary推荐Tom。

Append Code

#include<stdio.h>
#include<string.h>
#define LenN 101
#define LenM 21
typedef struct
{char n[21]; // 昵称char m[LenM]; //选项int a; //阈值
}Peo;int main()
{int x,y,max=0;scanf("%d %d",&x,&y);Peo Na[x];for(int i=0;i<x;i++){scanf("%s",Na[i].n);if(strlen(Na[i].n)>max)//计算名字最长的人名字长度,为了对其补空格{max=strlen(Na[i].n);}for(int j=0;j<=y;j++) //输入选项{scanf("%c ",&Na[i].m[j]);}scanf("%d",&Na[i].a); //输入每个人的阈值}for(int i=0;i<x;i++){printf("%s",Na[i].n);if(strlen(Na[i].n)<max) //不是最长名字,补齐空格{for(int j=0;j<max-strlen(Na[i].n);j++){printf(" ");}}printf(":");int f=0;for(int k=0;k<x;k++){if(k==i) k++;int flag=0;for(int l=1;l<=y;l++){if(Na[i].m[l]==Na[k].m[l]) flag++;//判断每个选项是否相等}if(flag>=Na[i].a){if(f!=0) printf(",");printf("%s",Na[k].n);f++; //判断有几个好友}}if(f==0)printf("NONE!");if(i!=x-1)printf("\n");}return 0;
}

【山科OJ】Problem A: 社交网络的好友推荐相关推荐

  1. 【山科OJ】Problem D: 藏头诗

    Description 有个小伙暗恋同班的姑娘,但是苦于害羞腼腆不敢直抒胸臆.于是小伙打算写一首英文情诗给她.为了使这首情诗高端霸气上档次,小伙经过三天三夜的精心创作写了一首藏头的情诗.请问你能看出他 ...

  2. 山科oj2307 Problem C: Cherry

    这道题还是挺水的 我朋友的 #include <bits/stdc++.h> using namespace std; class Cherry {public:Cherry(double ...

  3. 安科 OJ 1190 连接电脑 (并查集)

    时间限制:1 s 空间限制:128 M 传送门:https://oj.ahstu.cc/JudgeOnline/problem.php?id=1190 题目描述 机房里有若干台电脑,其中有一些电脑已经 ...

  4. 社交网络中基于张量分解的好友推荐

    社交网络中基于张量分解的好友推荐 摘要 引言 相关研究 问题描述 所提好友推荐方法 实验验证 结论 摘要 社交网络中快速增长的用户对现有好友推荐系统提出了挑战.本文我们用张量分解模型基于用户的标签行为 ...

  5. YTU OJ Problem 3013

    YTU OJ Problem 3013 皇后问题(递归) 题目描述 编写一个函数,求解皇后问题:在 n × n 的方格棋盘上,放置 n 个皇后,要求每个皇后不同行.不同列.不同左右对角线. 要求: 1 ...

  6. YTU OJ Problem 2013

    YTU OJ Problem 2013 C语言实验 - 一元二次方程 II 题目描述 求一元二次方程ax²+bx+c=0 的解. a,b,c为任意实数. 输入 输入数据有一行,包括 a,b,c 的值. ...

  7. 社交网络SNS的好友推荐算法

    花了几天看了些做社交的好友推荐,现在很多App都有社交场景,本身就是做用户的场景,所以以后肯定要在这块有一些应用.像早期的论坛类的更偏重资讯类的信息,后来像优酷土豆这又是做视频类,网易云音乐做音乐类. ...

  8. 山科机器人招聘| 算法总监及视觉、规划、融合定位算法工程师

    公司概况 山科机器人是国内领先.全球前十的花园机器人公司,主要从事智能花园机器人的研发和销售, 未来三年目标是成为全球前三的花园机器人公司.母公司浙江白马实业,年销售额约10亿元,产品以欧美市场为主, ...

  9. 共同好友推荐java_一种社交网络下的好友推荐算法

    A New Link Prediction Algorithm Based on Social Network ZHANG Mengzhe 1 张萌哲 女 硕士研究生,主要研究方向:社交网络和个性化推 ...

最新文章

  1. 【直播回顾】云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第19讲):Java Spring Cloud微服务架构模式与开发实战...
  2. c3p0如何配置多数据源的解决方法
  3. Python3解决UnicodeDecodeError:'utf-8' codec can't decode byte..问题终极解决方案
  4. Hackbar PJ
  5. flink查看operater链的中间结果+SingleOutputStreamOperator的用法
  6. 对clear float 的理解
  7. PHP生成静态网页的方法
  8. P1828 香甜的黄油 Sweet Butter (spfa)
  9. php 顺序排序,PHP顺序排序
  10. python 写一个scheme解释器(一)
  11. 计算机辅助制造讲义翻译,计算机辅助制造讲义-2007-2演示文稿.PPT
  12. Linux串口终端驱动——S3C6410平台
  13. kafka与mysql持久化_漫游Kafka设计篇之数据持久化
  14. 网站上点击自定义按钮发起QQ聊天的解决方案
  15. 01背包问题 —— 【算法设计】分支限界法
  16. 下拉列表组合折线图,这样的Excel动态图表,你会吗?
  17. XMind 2021 Mac 去水印教程
  18. 5V和USB供电 的隔离电路
  19. 目标跟踪 OP,CLE,DP,AUC的概念和计算
  20. 用WebView秒做一款简易的浏览器app

热门文章

  1. Python标准库time
  2. 全球通胀对IT领域的影响
  3. 判断一个数是否为质数的三种方法
  4. 软件模拟SPI接口程序代码
  5. Python搭建tensorflow三层神经网络
  6. App Store上下载和安装Xcode
  7. 基于MSP430F5529单片机的ADS1115
  8. 计算机毕业设计ssm基于b_s架构的实习管理系统
  9. java根据年月获取天数_获取指定年月的天数
  10. 研发团队建设的心得体会