首页 > 试题广场 >

小红书推荐算法

[编程题]小红书推荐算法
  • 热度指数:1018 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
我们假定一个用户搜索的关键词是他感兴趣的,现在请你基于这个前提设计一个小红书购物的推荐算法。
该算法的核心思想如下:首先给定一个商品清单,其中有每个商品所包含的关键词属性,然后给出用户最近搜索过的一些关键词,请你将包含用户搜索过的更多关键词的商品排在用户目录的前面。
对于包含关键词数量相同的商品,我们按默认顺序排序,也就是说按输入给定的顺序优先级。

输入描述:
第一行输入一个正整数n,q,代表商品数量、用户搜索的关键词数量。
第二行输入q个互不相同的、仅由小写字母组成的字符串,代表用户搜索过的关键词。
接下来的2*n行,每两行描述一个商品。
第一行输入一个仅由小写字母组成的字符串name和一个正整数m_i,代表商品的名称和商品包含的关键词属性数量。
第二行输入m_i个互不相同的、仅由小写字母组成的字符串,代表每个商品的属性。
1\leq n,q \leq 30000
所有的m_i之和不超过30000
保证所有字符串长度不超过 20。所有商品的名称互不相同。


输出描述:
输出n行,每行一个字符串,代表用户主页中显示的商品名称。
示例1

输入

2 5
red book game music sigma
mozart 3
book classic music
arcaea 4
red music game hard

输出

arcaea
mozart

说明

arcaea 这个商品包含了用户搜索的 3 个关键词,而 mozart 只包含了 2 个。
头像 饥饿的中国人offer多多
发表于 2025-08-22 20:49:49
import java.util.*; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new S 展开全文
头像 饥饿的中国人offer多多
发表于 2025-08-22 20:56:12
import java.util.*; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new S 展开全文
头像 VaseHaya
发表于 2025-09-09 05:40:44
#include <iostream> #include <queue> #include <unordered_set> #include <map> using namespace std; int main() { int n, q; 展开全文
头像 丨阿伟丨
发表于 2025-09-15 15:56:57
题目链接 小红书推荐算法 题目描述 给定一个商品清单和用户最近搜索过的一些关键词。需要设计一个推荐算法,将商品按照与用户搜索关键词的匹配度进行排序。 排序规则如下: 主要规则:包含用户搜索过的关键词数量越多的商品,排名越靠前。 次要规则:对于包含关键词数量相同的商品,保持它们在输入时的原始相对顺序 展开全文