#GPLT0007. 【GPLT 2026】L1-7 短视频推荐算法
【GPLT 2026】L1-7 短视频推荐算法
题目描述
江月诗平时喜欢刷短视频。为了给她推荐更精准的内容,你被要求开发一个简易的推荐算法,通过模拟她的操作记录,来计算她对各个视频特性标签(Tag)的最终兴趣得分。
用户对视频的操作分为四种:
SHARE(分享):强烈的正向反馈,视频包含的所有标签得分 。COIN(投币):较强的正向反馈,视频包含的所有标签得分 。LIKE(点赞):普通的正向反馈,视频包含的所有标签得分 。SKIP(划走):负向反馈,视频包含的所有标签得分 。
为了捕捉用户的“上头”瞬间(即连续观看同类内容),系统引入了连击(Combo)机制:
- 每个标签都有一个独立的连击计数器,初始均为 。
- 当用户执行正向反馈(
SHARE,COIN,LIKE)时:- 视频中包含的标签,其连击计数器 。一旦某个标签的连击计数器达到 ,该标签会触发“上头”奖励,兴趣得分立即额外 ,随后该标签的连击计数器清零。
- 注意:视频中未包含的其他所有标签,其连击计数器全部清零(因为连续性被打断)。
- 当用户执行负向反馈(
SKIP)时:- 打断了所有的浏览兴致,不论标签是否在当前视频中,所有标签的连击计数器全部清零。
所有标签的初始兴趣得分均为 。现在给出江月诗连续浏览 个视频的操作记录,请你计算出所有至少在记录中出现过一次的标签中,最终兴趣得分最高的标签。
输入格式
输入在第一行给出一个正整数 (),表示操作的视频数量。
随后 行,每行描述一次视频浏览记录,格式为:ACTION K F_1 ... F_K
其中 ACTION 是 SHARE, COIN, LIKE, SKIP 中的一种;()是该视频包含的特性标签数量; 是特性标签的编号()。数字间以空格分隔。保证同一个视频中的标签编号互不相同。
输出格式
在一行中输出得分最高的特性标签编号和它的最终得分,数字间隔 1 个空格。如果有并列最高分,则输出编号最大的那个。题目保证 。
输入样例
6
LIKE 3 10 20 30
COIN 2 20 30
SKIP 1 10
SHARE 2 20 40
LIKE 2 20 50
COIN 1 20
输出样例
20 14
样例解释
- 初始状态:所有标签得分和连击均为 0。
- 第 1 次 (
LIKE10, 20, 30):- 得分变为:10(1分), 20(1分), 30(1分)。
- 连击变为:10(1连), 20(1连), 30(1连)。其他均清零。
- 第 2 次 (
COIN20, 30):- 得分变为:10(1分), 20(3分), 30(3分)。
- 连击变为:20(2连), 30(2连)。标签 10 未出现,连击清零。
- 第 3 次 (
SKIP10):- 得分变为:10(0分)。
- 连击变为:遇到 SKIP,所有标签连击清零(20和30的连击变为0)。
- 第 4 次 (
SHARE20, 40):- 得分变为:20(6分), 40(3分)。
- 连击变为:20(1连), 40(1连)。其他清零。
- 第 5 次 (
LIKE20, 50):- 得分变为:20(7分), 50(1分)。
- 连击变为:20(2连), 50(1连)。40的连击清零。
- 第 6 次 (
COIN20):- 得分变为:20(9分)。
- 连击变为:20(3连)。达到 3 连击,触发奖励,得分额外 +5。20 的最终得分为 。连击随后清零。50的连击清零。
经过统计,标签 20 得分最高为 14 分。
相关
在以下作业中: