PAT (Advanced Level) Practice - 1129 Recommendation System(25 分)

简介: PAT (Advanced Level) Practice - 1129 Recommendation System(25 分)

题目链接:点击打开链接

题目大意:略。

解题思路:略。

AC 代码

#include<bits/stdc++.h>
#include<cmath>
#define mem(a,b) memset(a,b,sizeof a)
#define ssclr(ss) ss.clear(), ss.str("")
#define INF 0x3f3f3f3f
#define MOD 1000000007
using namespace std;
typedef long long ll;
const int maxn=5e5+10;
struct node
{
    int val,cnt;
    node(int val,int cnt):val(val),cnt(cnt){}
    bool operator<(const node &nd)const
    {
        //return false 数据插入失败,而不是(插入成功,只是位置不一样)。
        return cnt!=nd.cnt ? cnt>nd.cnt : val<nd.val ;
    }
};
set<node> st;
int mp[maxn];
int main()
{
    int n,k,a,l;
    scanf("%d%d",&n,&k);
    for(int i=0;i<n;i++)
    {
        scanf("%d",&a);
        if(i)
        {
            printf("%d:",a);
            l=0;
            for(auto it=st.begin(); it!=st.end()&&l<k; it++)
            {
                l++;
                printf(" %d",(*it).val);
            }
            puts("");
        }
        auto it=st.find(node(a,mp[a]));
        if(it!=st.end()) st.erase(it);
        mp[a]++;
        st.insert(node(a,mp[a]));
    }
    return 0;
}
目录
相关文章
|
5月前
|
人工智能 Rust IDE
JetBrains RustRover 2025.1 发布 - 面向 Rust 开发者的强大 IDE
JetBrains RustRover 2025.1 (macOS, Linux, Windows) - 面向 Rust 开发者的强大 IDE
181 27
JetBrains RustRover 2025.1 发布 - 面向 Rust 开发者的强大 IDE
|
Ubuntu Linux 芯片
M1芯片新玩法:轻松实现Parallels Desktop上的多Ubuntu系统
M1芯片新玩法:轻松实现Parallels Desktop上的多Ubuntu系统
395 0
|
小程序 Linux 开发者
Linux之缓冲区与C库IO函数简单模拟
通过上述编程实例,可以对Linux系统中缓冲区和C库IO函数如何提高文件读写效率有了一个基本的了解。开发者需要根据应用程序的具体需求来选择合适的IO策略。
122 0
|
人工智能 区块链 数据库
开源游戏区块链项目分享:Unity开发的独立区块链
开源游戏区块链项目分享:Unity开发的独立区块 2023年了,区块链在这此时代热浪下都已经是即将燃尽的火苗了,而ChatGPT、Stable Diffusion等AI产品已经成为当下风口和热浪。然而区块链作为上一任浪热下的余晖,真的就这么完事了么?其实目前区块链在国内更多作为信用链存在,用于法律签约、物流运输、商务合作、加密合约等等公共底层方面。 而此文将不仅探讨区块链的其他实际用途,同时也开源了一个Unity3D C#编写的区块链代码,如果你是技术人员,刚好你做区块链项目,希望这个文章和代码能帮助到你。
709 0
|
设计模式 缓存 前端开发
「趣学前端」设计模式学习与应用
用技术实现梦想,用梦想打开创意之门。今天分享设计模式学习与应用。
178 0
「趣学前端」设计模式学习与应用
|
缓存 网络协议 Java
分布式配置系统Apollo如何实时更新配置的
分布式配置系统Apollo如何实时更新配置的
740 0
分布式配置系统Apollo如何实时更新配置的
如何用Apifox 的智能Mock功能?
大家好。继上一章节我们学习了Apifox的前置操作和后置操作,我们基本上学会了如何使用Apifox 去测试一个接口了。现在我们开始学习Apifox的强大的Mock功能。 今天我们学习下最简单的智能Mock 功能。
|
SQL 并行计算 Java
MyEclipse2017:MyEclipse2017软件破解图文教程(解决MyEclipse软件因试用期过期而无法再次使用的问题)
MyEclipse2017:MyEclipse2017软件破解图文教程(解决MyEclipse软件因试用期过期而无法再次使用的问题)
MyEclipse2017:MyEclipse2017软件破解图文教程(解决MyEclipse软件因试用期过期而无法再次使用的问题)
|
弹性计算 程序员 数据安全/隐私保护
云服务器初体验
通过老师给予的学习机会尝试利用ecs搭建建立网站和博客
|
Java
OkHttp3源码解析(一)之请求流程
带你从源码理解OkHttp3的原理
2825 0