第十七次CCF计算机软件能力认证 推荐系统 (优先队列,哈希表)
发布日期:2021-05-08 02:34:50 浏览次数:15 分类:精选文章

本文共 753 字,大约阅读时间需要 2 分钟。

分析

用一个数据结构存储每一个商品,使用大根堆 q q q对每一个商品进行存储。

用哈希表 d e l del del记录该商品是否被删除
由于遍历优先队列会让队列变空,所以用另一个优先队列 t e m p temp temp存储出队的元素,最后再把所有元素返还给 q q q

C++ 代码

#include
using namespace std;typedef pair
PII;struct node{ int Id,id,sc; //商品种类Id,第id个商品,该商品得分sc bool operator<(const node &p) const{ //由于默认为大根堆,所以所有的比较都应该反过来 if(sc!=p.sc) return sc
p.Id; return id>p.id; }};priority_queue
q; //大根堆qmap
del; //判断该商品是否删除 (pair
<商品种类,第几个商品>
)int m,n,OP;int main(){ scanf("%d%d",&m,&n); int cId,cid,cval; for(int i=0;i
temp; //由于遍历优先队列会让队列变空,所以用另一个队列temp存储出队的元素 int tot,len[55]; //len:每个种类的商品要挑选的元素 memset(len,0,sizeof len); vector
ans[55]; //答案数组 scanf("%d",&tot); //一共要选出的商品数量 for(int i=0;i
上一篇:九、Pandas高级处理
下一篇:八、Pandas的基本使用

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2025年04月03日 18时07分43秒