【华为OD】统一考试B\C卷真题 100%通过:开源项目热榜 C/C++实现

目录

题目描述:

示例1

示例2


题目描述:

        

某个开源社区希望将最近热度比较高的开源项目出一个榜单,推荐给社区里面的开发者。对于每个开源项目,开发者可以进行关注(watch)、收藏(star)、fork、提issue、提交合并请求(MR)等。

数据库里面统计了每个开源项目关注、收藏、fork、issue、MR的数量,开源项目的热度根据这5个维度的加权求和进行排序。

表示热度值,

分别表示5个统计维度的权重,

分别表示5个统计维度的统计值。

榜单按照热度值降序排序,对于热度值相等的,按照项目名字转换为全小写字母后的字典序排序('a','b','c',...,'x','y','z')。

输入描述

第一行输入为N,表示开源项目的个数,

第二行输入为权重值列表,一共5个整型值,分别对应关注、收藏、fork、issue、MR的权重,权重取值

第三行开始接下来的N行为开源项目的统计维度,每一行的格式为:

name nr_watch nr_star nr_fork nr_issue nr_mr

其中name为开源项目的名字,由英文字母组成,长度

,其余5个整型值分别为该开源项目关注、收藏、fork、issue、MR的数量,数量取值

输出描述

按照热度降序,输出开源项目的名字,对于热度值相等的,按照项目名字转换为全小写字母后的字典序排序('a'>'b'>'c'>...>'x'>'y'>'z')。

示例1

输入输出示例仅供调试,后台判题数据一般不包含示例

输入

4
8 6 2 8 6
camila 66 70 46 158 80
victoria 94 76 86 189 211
anthony 29 17 83 21 48
emily 53 97 1 19 218

输出

victoria
camila
emily
anthony

说明

排序热度值计算:

camila: 66*8 + 70*6 + 46*2 + 158*8 + 80*6 = 2784

victoria: 94*8 + 76*6 + 86*2 + 189*8 + 211*6 = 4158
anthony: 29*8 + 17*6 + 83*2 + 21*8 + 48*6 = 956

emily: 53*8 + 97*6 + 1*2 + 19*8 + 218*6 = 2468

根据热度值降序,得到结果。

示例2

输入输出示例仅供调试,后台判题数据一般不包含示例

输入

5
5 6 6 1 2
camila 13 88 46 26 169
grace 64 38 87 23 103
lucas 91 79 98 154 79
leo 29 27 36 43 178
ava 29 27 36 43 178

输出

lucas
grace
camila
ava
leo

说明

排序热度值计算:

camila: 13*5 + 88*6 + 46*6 + 26*1 + 169*2 = 1233

grace: 64*5 + 38*6 + 87*6 + 23*1 + 103*2 = 1299
lucas: 91*5 + 79*6 + 98*6 + 154*1 + 79*2 = 1829
leo: 29*5 + 27*6 + 36*6 + 43*1 + 178*2 = 922

ava: 29*5 + 27*6 + 36*6 + 43*1 + 178*2 = 922

根据热度值降序,对于leo和ava,热度值相等,按照字典序,ava排在leo前面,得到结果。

解题思路:

        根据规则来排序即可,要记得先把热度值计算好

代码实现:

#include <iostream>
#include <map>
#include <algorithm>
#include <vector>
#include <string>
using namespace std;

vector<int> readData() {
	vector<int> vec(5);
	for (int i = 0; i < 5; ++i) {
		cin >> vec[i];
	}
	return vec;
}

int main() {
	int n;
	cin >> n;
	vector<int> values = readData();
	vector<string> res(n);
	map<string, vector<int>> all;
	for (int i = 0; i < n; ++i) {
		cin >> res[i];
		all[res[i]] = readData();
	}

	sort(res.begin(), res.end(), [&](const string &first, const string &second) {
		const auto &arr1 = all[first];
		const auto &arr2 = all[second];
		int t1 = 0, t2 = 0;
		for (int i = 0; i < 5; ++i) {
			t1 += arr1[i] * values[i];
		}
		for (int i = 0; i < 5; ++i) {
			t2 += arr2[i] * values[i];
		}
		if (t1 != t2) return t1 > t2;
		return first < second;
	});
	for (auto & x : res) {
		cout << x << endl;
	}
	return 0;

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/193839.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

什么是数据增强,为什么会让模型更健壮?

在做一些图像分类训练任务时&#xff0c;我们经常会遇到一个很尴尬的情况&#xff0c;那就是&#xff1a; 明明训练数据集中有很多可爱猫咪的照片&#xff0c;但是当我们给训练好的模型输入一张戴着头盔的猫咪进行测试时&#xff0c;模型就不认识了&#xff0c;或者说识别精度…

14、矩阵键盘

矩阵键盘介绍 在键盘中按键数量越多时&#xff0c;为了减少I/O口的占用&#xff0c;通常将按键排列成矩阵形式 采用逐行或逐列的“扫描”&#xff0c;就可以读出任何位置按键的状态 扫描的概念 数码管扫描&#xff08;输出扫描&#xff09; 原理&#xff1a;显示第1位—&g…

【iOS-UIImagePickerController访问相机和相册】

【iOS-UIImagePickerController访问相机和相册】 一. UIImagePickerController的介绍1 . UIImagePickerController的作用2 . UIImagePickerController的功能 二 . UIImagePickerController的测试程序 一. UIImagePickerController的介绍 1 . UIImagePickerController的作用 U…

Unity 关于Input类的使用

Input类在我们游戏开发中需要获取外设设备&#xff08;比如键盘、鼠标、游戏手柄等&#xff09;进行交互时&#xff0c;基本都会用到。 它主要有以下一些常用的方法。 1、GetKey(KeyCode key)&#xff0c;检测按键是否被按下&#xff1b; 2、GetKeyDown(KeyCode key)&#x…

sqli-labs(4)

17. 观察页面发现是一个用来更改用户密码的页面&#xff0c;页面中出现了用户Dhakkan user输入Dhakkan passs输入1发现成功找注入点 先在user尝试&#xff0c;发现不管输入什么都失败在pass中尝试注入 在pass中输入1‘ 报错注入 1 and extractvalue(1,concat(0x5c,database(…

openpnp - 给底部相机加防尘罩

文章目录 openpnp - 给底部相机加防尘罩概述笔记END openpnp - 给底部相机加防尘罩 概述 设备标定完, 看着底部相机, 有点担心掉进去东西, 万一从吸嘴掉下去的料(或者清理设备台面时, 不小心掉进去东西)将顶部相机搞短路怎么办. 就想加个防尘罩, 如果有东西掉进去, 可以掉到机…

【python】python基础速通系列2-python程序中的积木块

【组成Python的几个单位】 变量:指向值的名称。或者说变量是一个名称,这个名称指向一个具体的指。比如n=17,就说这个叫做n的变量的值是17。表达式:是值,变量和运算符的组合。如果把变量理解为名词,那么表达式就是把名词连起来的动词形容词。比如:n+25。语句:代码的基本…

还在为写论文焦虑?免费AI写作大师来帮你三步搞定

先来看1分钟的视频&#xff0c;对于要写论文的你来说&#xff0c;绝对有所值&#xff01; 还在为写论文焦虑&#xff1f;免费AI写作大师来帮你三步搞定 第一步&#xff1a;输入关键信息 第二步&#xff1a;生成大纲 稍等片刻后&#xff0c;专业大纲生成&#xff08;由于举例&am…

CANdelaStudio 使用教程6 编辑DTC

文章目录 DTC的导入导出定义 19 服务的DTC编辑快照数据 DTC的导入导出 DTC导出的文件是 Excel 文件&#xff0c;可以先将这个池子的DTC导出去修改&#xff0c;再导入进来&#xff0c;完成DTC的修改 定义 19 服务的DTC 编辑快照数据

入侵redis之准备---VMware上面安装部署centos7镜像系统【详细含云盘镜像】

入侵redis之准备—VMware上面安装部署centos7镜像系统【详细含云盘镜像 废话不多说直接开始 下载centos7镜像 网上有好多&#xff0c;但是我相信来看小编文章的基本上应该都有centos7的镜像了吧&#xff0c;毕竟咱们都是同一类人&#xff0c;哈哈不卖关子了&#xff0c;小编直…

根据密码构成规则检测密码字符串

从键盘输入密码字符串&#xff0c;程序根据给定密码构成规则检测并给出对应提示。 (笔记模板由python脚本于2023年11月27日 19:27:47创建&#xff0c;本篇笔记适合熟悉Python字符串str对象的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网&#xff1a;https://www.python.…

SpringCloud gateway (史上最全)

目录 1.1 SpringCloud Gateway 简介 1.2 SpringCloud Gateway 特征 1.3 SpringCloud Gateway和架构 1.3.1 SpringCloud Zuul的IO模型 1.3.2 Webflux 服务器 1.3.3 Spring Cloud Gateway的处理流程 2 路由配置方式 2.1 基础URI路由配置方式 2.2 基于代码的路由配置方式 …

C++ :const修饰成员函数

常函数&#xff1a; 常函数&#xff1a; 成员函数后加const后我们称为这个函数为常函数 常函数内不可以修改成员属性 成员属性声明时加关键字mutable后&#xff0c;在常函数中依然可以修改 属性可修改&#xff1a; class Person { public: void showPerson() …

外观设计模式

package com.jmj.pattern.facade;public class Light {public void on(){System.out.println("打开电灯...");}public void off(){System.out.println("关闭电灯...");} }package com.jmj.pattern.facade;public class AirCondition {public void on(){S…

2020年12月 Scratch(四级)真题解析#中国电子学会#全国青少年软件编程等级考试

Scratch等级考试(1~4级)全部真题・点这里 一、单选题(共15题,每题2分,共30分) 第1题 陶朱家开了一间小卖部,学了编程的他想编写一个程序帮助分析小卖部各种商品的售卖情况。如下图所示,目前各个商品的名称和销售量分别存在了两张列表里,一一对应,并且每一样商品的销…

Windows系统 TexWorks 显示“Font Monaco not found.“

先双击MONACO.ttf文件完成安装&#xff0c;还是不行用以下方法解决&#xff1a; 解决方法&#xff1a;将Monaco.ttf后缀&#xff08;不一定非要这个格式的&#xff0c;可以自行尝试&#xff09;的字体文件解压&#xff0c;复制进texlive文件夹下的路径,例如&#xff1a; C:\t…

【leetcode每日一题】565数组嵌套

思路流程&#xff1a; 思路v1.0 先学会写 s[0] ,用一个ans数组接收元素&#xff0c;每次往ans里添加的时候&#xff0c;先判断一下 这个index会不会超出数组的长度。ans里有没有这个元素。 s[0] 写完&#xff0c;就是用一个for循环&#xff0c;算出所有的 s[i],每次算出来的时…

Jmeter工具学习三——CSV文件、关联、断言

Jmeter学习三——CSV文件和关联 jmeter做功能测试和做性能测试的区别CSV数据文件设置&#xff08;读取外部文件&#xff0c;进行分数据驱动&#xff09;文件设置字段介绍&#xff1a;文件名文件编码如果出现编码问题导致的乱码&#xff0c;如何解决&#xff1f; 变量名忽略首行…

Nacos 2.X核心架构源码剖析

概述 注册中心并发处理&#xff0c;1.4.x 写时复制&#xff0c;2.1.0 读写分离&#xff1b;nacos 一般使用 AP 架构&#xff0c;即临时实例&#xff0c;1.4.x 为 http 请求&#xff0c;2.1.0 优化为 gRPC 协议&#xff1b;源码中使用了大量的事件通知机制和异步定时线程池&…

蓝桥杯刷题day01——字符串中的单词反转

题目描述 你在与一位习惯从右往左阅读的朋友发消息&#xff0c;他发出的文字顺序都与正常相反但单词内容正确&#xff0c;为了和他顺利交流你决定写一个转换程序&#xff0c;把他所发的消息 message 转换为正常语序。 注意&#xff1a;输入字符串 message 中可能会存在前导空…