专栏首页刷题笔记【2020HBU天梯赛训练】7-47 点赞狂魔

【2020HBU天梯赛训练】7-47 点赞狂魔

7-47 点赞狂魔

微博上有个“点赞”功能,你可以为你喜欢的博文点个赞表示支持。每篇博文都有一些刻画其特性的标签,而你点赞的博文的类型,也间接刻画了你的特性。然而有这么一种人,他们会通过给自己看到的一切内容点赞来狂刷存在感,这种人就被称为“点赞狂魔”。他们点赞的标签非常分散,无法体现出明显的特性。本题就要求你写个程序,通过统计每个人点赞的不同标签的数量,找出前3名点赞狂魔。

输入格式:

输入在第一行给出一个正整数N(≤100),是待统计的用户数。随后N行,每行列出一位用户的点赞标签。格式为“Name K F​1​​⋯F​K​​”,其中Name是不超过8个英文小写字母的非空用户名,1≤K≤1000,F​i​​(i=1,⋯,K)是特性标签的编号,我们将所有特性标签从 1 到 10​7​​ 编号。数字间以空格分隔。

输出格式:

统计每个人点赞的不同标签的数量,找出数量最大的前3名,在一行中顺序输出他们的用户名,其间以1个空格分隔,且行末不得有多余空格。如果有并列,则输出标签出现次数平均值最小的那个,题目保证这样的用户没有并列。若不足3人,则用-补齐缺失,例如mike jenny -就表示只有2人。

输入样例:

5
bob 11 101 102 103 104 105 106 107 108 108 107 107
peter 8 1 2 3 4 3 2 5 1
chris 12 1 2 3 4 5 6 7 8 9 1 2 3
john 10 8 7 6 5 4 3 2 1 7 5
jack 9 6 7 8 9 10 11 12 13 14

输出样例:

jack chris john

做几道这样的题发现都是差不多的结构体排序问题

#include<iostream>
#include<vector>
#include<algorithm>
#include<set>
using namespace std;
struct Node{
	string name;
	int num,sum;
};
bool cmp1(Node a,Node b){
	if(a.num!=b.num){return a.num>b.num;}
	return a.sum<b.sum;
}
int main(){
	int n;
	cin>>n;
	vector<Node>node(n);
	for(int i=0;i<n;i++){
		string name;
		int k;
		cin>>name>>k;
		set<int>t;
		int tt;
		for(int j=0;j<k;j++){
			cin>>tt;
			t.insert(tt);
		}
		node[i].name=name;
		node[i].num=t.size();
		node[i].sum=k;
	}sort(node.begin(),node.end(),cmp1);
	if(n==0)cout<<"- - -";
	else if(n==1)cout<<node[0].name<<" - -";
	else if(n==2)cout<<node[0].name<<" "<<node[1].name<<" -";
	else cout<<node[0].name<<" "<<node[1].name<<" "<<node[2].name; 
	return 0;
} 

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 1-10 链表去重 (20 分)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    韩旭051
  • 1052 卖个萌 (20 分)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    韩旭051
  • 【LeetCode第 177 场周赛】5171. 最接近的因数

    两数乘积等于 num + 1 或 num + 2 以绝对差进行度量,两数大小最接近 你可以按任意顺序返回这两个整数。

    韩旭051
  • LeetCode-36-Valid-Sudoku

    判断一个二维数组是不是数独数组。要求是:同行同列,斜对角不能有相同的数组,这里需要定义三个数组,当然参考了一下讨论区一个大神的代码。采用行列,竖列和斜列。其中比...

    小二三不乌
  • Java设计模式|工厂方法模式

    工厂方法模式是类的创建模式。工厂方法模式的用意是定义一个创建产品对象的工厂接口,将实际创建工厂推迟到子类中。

    技术从心
  • Java反射(一)

    Java学习123
  • Linux服务器更换主板后,网卡识别失败的处理方法

    1)现象说明 公司IDC机房里的一台线上服务器硬件报警,最后排查发现服务器主板坏了,随即联系厂商进行更换主板,最后更换后,登录服务器,发现网卡绑定及ip信息都在...

    洗尽了浮华
  • 每天一道剑指offer-滑动窗口的最大值

    给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,...

    乔戈里
  • LeetCode 594. 最长和谐子序列(map)

    来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/longest-harmonious-subseque...

    Michael阿明
  • SpringBoot集成JPA

    在SpringBoot中,通过Spring Data JPA 和 Spring Data Rest可以快速构建出一个RESTFul应用。

    Noneplus

扫码关注云+社区

领取腾讯云代金券