PAT甲级1129解题报告

PAT甲级题目解析和知识点分类整理 个人博客:https://maxusun.github.io/ 转载请注明出处 今天整理电脑,发现了去年为了考研浙大计算机整理的PAT资料。现在考研已经尘埃落定。想到当时盲目刷题浪费了好多时间,在这里希望将整理的东西放到网上,方便后来者学习。 PAT的命题趋势 将PAT甲级中的题目从第一题刷到最后一题,可以明显感受到,PAT甲级的题目风格发生了很明显的变化。从早期的模拟型题目变成了后来以数据结构和算法为主的固定题型。如果时间紧迫的话,可以只刷后一般的题目,放弃前一半的题目,因为前一半题目的出题风格已经过时了 阅读详情

1129 Recommendation System (25 point(s))

Recommendation system predicts the preference that a user would give to an item. Now you are asked to program a very simple recommendation system that rates the user's preference by the number of times that an item has been accessed by this user.

Input Specification:

Each input file contains one test case. For each test case, the first line contains two positive integers: N (≤ 50,000), the total number of queries, and K (≤ 10), the maximum number of recommendations the system must show to the user. Then given in the second line are the indices of items that the user is accessing -- for the sake of simplicity, all the items are indexed from 1 to N. All the numbers in a line are separated by a space.

Output Specification:

For each case, process the queries one by one. Output the recommendations for each query in a line in the format:

query: rec[1] rec[2] ... rec[K]

where query is the item that the user is accessing, and rec[i] (i=1, ... K) is the i-th item that the system recommends to the user. The first K items that have been accessed most frequently are supposed to be recommended in non-increasing order of their frequencies. If there is a tie, the items will be ordered by their indices in increasing order.

Note: there is no output for the first item since it is impossible to give any recommendation at the time. It is guaranteed to have the output for at least one query.

Sample Input:

12 3
3 5 7 5 5 3 2 1 8 3 8 12

Sample Output:

5: 3
7: 3 5
5: 3 5 7
5: 5 3 7
3: 5 3 7
2: 5 3 7
1: 5 3 2
8: 5 3 1
3: 5 3 1
8: 3 5 1
12: 3 5 8

题目大意:给一堆数,在每次给出一个数后查询前面的数出现次数最多的K个数,不满K个数就输出所有数,第一个数不查询,因为没有数。

解题思路:一开始用个map和vector排序,没过,后来用了个set,简单的自定义一个结构体,规定<方法,利用set自动排序的特性自动排序就过了。

#include<iostream>
#include<string.h>
#include<vector>
#include<algorithm>
#include<iomanip>
#include<time.h>
#include<math.h>
#include<set>
#include<list>
#include<climits>
#include<queue>
#include<cstring>
#include<map>
#include<stack>
#include<string>
using namespace std;
map<int, int> a;
struct node {
	int v;
	int c;
	node(int v, int c) {
		this->v = v;
		this->c = c;
	}
	bool operator<(const struct node & tmp)const {
		if (this->c > tmp.c) {
			return true;
		}
		else if (this->c == tmp.c) {
			return this->v < tmp.v;
		}
		else {
			return false;
		}
	}
};
set<node> cur;
int main()
{
	int N, K;
	scanf("%d %d", &N, &K);
	for (int i = 0; i < N; i++) {
		int tmp;
		scanf("%d", &tmp);
		if (i == 0) {
			a[tmp] += 1;
			cur.insert(node(tmp, a[tmp]));
		}
		else {
			printf("%d: ", tmp);
			int curK = cur.size() < K ? cur.size() : K;
			int index = 0;
			for (auto j = cur.begin(); j != cur.end(); j++) {
				index++;
				if (index != curK) {
					printf("%d ", (*j).v);
				}
				else {
					printf("%d\n", (*j).v);
					break;
				}
			}
			if (a[tmp] == 0) {
				a[tmp] += 1;
				cur.insert(node(tmp, a[tmp]));
			}
			else {
				cur.erase(node(tmp, a[tmp]));
				a[tmp] += 1;
				cur.insert(node(tmp, a[tmp]));
			}
		}

	}
	return 0;
}

 

pat 甲级考试 算法模板 第一版 跟随mooc课程,方便大家学习。 甲级考试 算法模板,这是第一版,希望大家多提意见 立即下载

相关推荐

嵌入式开发中Tab与空格混用的危害与统一规范实践

在软件工程中,代码格式一致性是保障可读性与团队协作效率的基础。从原理上看,制表符(Tab)与空格(Space)在存储与显示机制上存在本质差异:Tab是控制字符,其显示宽度取决于编辑器设置;空格则是固定宽度的字符。这种差异导致混用时会引发代码对齐错乱、版本控制冲突及跨平台兼容性问题,严重影响工程的可维护性。尤其在嵌入式开发领域,资源受限环境与高可靠性要求使得统一的编码规范更为关键。通过配置编辑器、集成clang-format等自动化工具,可以强制实现缩进风格的一致性,从而提升代码质量与团队协作效率。本文聚焦于

weixin_42545636的博客 276

PAT——1129 Recommendation System 甲级

1129 Recommendation System 题目题意代码解析AC代码参考 题目 https://pintia.cn/problem-sets/994805342720868352/problems/994805348471259136 题意 每次浏览前,按照之前的浏览记录进行推荐,推荐次数不大于k,推荐顺序按照物品的浏览次数排序,次数相同按照值升序排列 代码解析 通过运算符重载自定义优先集合,集合(set)中的元素按照指定要求排序。每次输出后,判断当前数字是否在集合中,如果在,就把它拿出来,更新c

ljhsq的博客 210

Xilnx大学计划/XUP ZYNQ ZU开发板

TUL PYNQ™-ZU板,基于Xilinx Zynq UltraScale+ MPSoC,是为Xilinx大学项目设计的,以支持Xilinx PYNQ (Python Productivi-ty for Zynq)开源框架和嵌入式系统开发。

weixin_57025922的博客 946

PAT甲级题目1129 Recommendation System

题目大意: 根据前面顾客的选择,推荐给后面顾客货物,不超过给定的个数。 代码: #include <iostream> #include <set> using namespace std; int book[50001]; struct node { int value, cnt; bool operator < (const node &a) const { return (cnt != a.cnt) ? cnt >

weixin_43801993的博客 147

群晖Hyper Backup还原实战:加密与非加密备份的完整操作指南

本文详细介绍了群晖Hyper Backup在加密与非加密备份场景下的完整还原操作指南。通过实战案例和高级技巧,帮助用户应对硬盘故障或系统崩溃时的数据恢复挑战,特别是加密备份恢复中的关键节点和常见陷阱。

weixin_29323365的博客 439

脑电数据预处理十四:主成分分析(PCA)用于伪迹去除与降维

本文探讨了主成分分析(PCA)在脑电图(EEG)预处理中的双重应用。针对EEG数据的高维特性和伪迹干扰问题,PCA既可有效去除高振幅伪迹(如眼动、心电等),又能实现数据降维。文章详细解析了PCA的核心原理,包括正交基向量投影和方差最大保留机制,并提供了基于MNE-Python的完整实现方案。通过代码示例展示了PCA在伪迹去除和降维中的具体应用效果,包括功率谱密度和时域波形的可视化对比。虽然ICA在复杂伪迹处理上更具优势,但PCA以其算法简单、计算高效的特点,成为EEG分析流程中不可或缺的基础工具。

qq_32516809的博客 1417

个人练习-PAT甲级-1129 Recommendation System

PAT甲级

Rstln的博客 171

virtuoso如何导出def?

在DEF Out界面,填写def name,library name以及cell name ,cell view既layout,把Output "Floating Shapes" into SPECIAL NETS Section勾上,OK即可。2)在要导出的layout界面选中PAD和prBoundary(shift+左键),快捷键C copy到空cell里,这时需要调整copy过来的object坐标,让两边prBoundary的坐标相同。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?

m0_61544122的博客 2304

PAT 1129 C++版

PAT 1129 C++版【updating…】 1.题意 实现一个简单的推荐系统。这里的推荐规则如下: 给出一个总的可推荐的数目n 给出一串访问序列,针对该访问序列得到的访问当前商品时的推荐商品。 2.分析 处理这道题,有直接暴力的思想: 直接将所有的已访问商品放到一个结构体数组中,然后每次输入的时候,进行一个排序,然后输出前k个。 上面的思想虽然简单,但是容易出现测试用例超时的结果。所以...

说文科技,做有态度的研究。 692

【ACP】2025-最新-疑难题解析- 练习一汇总

他们对您的方案比较满意,作为一个特别看重用户体验的创业公司,他们有一个比较担心的问题:在后端云服务器 ECS 实例相对空闲时,可能会触发减少 ECS 实例的伸缩活动,这时候运行在即将移出伸缩组的 ECS 实例上的应用会被终止,那么发起这些应用的用户的体验会变差。:在使用阿里云的负载均衡 SLB 实例时,做了如下健康检查的配置:响应超时时间为 5 秒,健康检查间隔为 2 秒,不健康阈值为 3,健康阈值为 3,即对于确认一个后端服务器 ECS 实例是健康的,需要连续三次得到正常响应。以下说法哪一项是正确的?

jundao1997的专栏 326

【Bug已解决】codex: conversation context window exceeded / Token limit reached — CodeX CLI 上下文窗口超限解决方案

CodeX CLI 上下文窗口超限(context_length_exceeded)的解决方案,含开新会话、更大窗口模型、精简提示与限制工具输出。

博客 4180

pat-1129

我只能说牛逼啦 我的思路 后面超时 for循环太多了 #include<iostream> #include<vector> #include<unordered_map> #include<algorithm> #include<set> #include<cmath> using namespace std; struct node{ int index,fre; }; bool cmp(node&a,node&.

江船夜雨听笛的博客 206

YOLOv8多传感器融合技术——毫米波雷达融合技术详解

本文介绍了YOLOv8与毫米波雷达融合技术在自动驾驶系统中的应用。毫米波雷达具有全天候工作、测距测速精准等优势,但存在分辨率低等局限。通过融合YOLOv8的视觉检测能力,可显著提升系统在恶劣环境下的感知性能。文章详细阐述了融合实现方法,包括雷达数据处理、目标投影匹配、置信度融合等关键技术,并提供了评估指标和应用场景分析。这种多传感器融合方案能有效弥补单一传感器的不足,为自动驾驶提供更可靠的环境感知能力,是实现高级别自动驾驶的重要技术支撑。

u010117029的博客 174

PAT甲级部分python解题记录

用Python写PAT甲级,答案都在这了。每一道题都有原题、题目大意以及代码实现,大部分的题目都有详细的逻辑分析。欢迎大家一起来讨论!

贰拾壹 4479

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

PAT甲级按题型分类

PAT甲级按题型分类 1. 水题篇 2. 数据结构篇 2.1 线性表 结构框架 顺序结构:顺序表 链式结构:单链表、双链表、循环链表(指针);静态链表(借助数组) 2.2 栈&队 结构框架 栈:顺序栈、链栈、共享栈 队列:循环队列、链式队列、双端队列 数组(推广):一维数组、对维数组(压缩、稀疏矩阵) 2.3 串 结构框架 基本功概念:主串、子串、串长 存储结构:定长顺序存储、堆分配存储、块链存储 模式匹配算法:暴力匹配、KMP算法(部分匹配值表、next数组、next函数的推理)、kmp

TypicalSpider的博客 3939

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

【PAT甲级 - C++题解】1129 Recommendation System

📣专栏定位:为想考甲级PAT的小伙伴整理常考算法题解,祝大家都能取得满分!

Newin2020的博客 366

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

pat甲级 1129 Recommendation System (25分)

文章目录pat甲级 1129 Recommendation System (25分)代码 pat甲级 1129 Recommendation System (25分) note:这道题本身不难,任务简单,就是在线查询排序;但难点在对STL的运用上 ,首先选择合理的容器有两个:map和set,map增删查改更易,重构compare函数或重载操作符很难实现排序;set反之;但增删查改复杂一点容易解决,故只有可选。其次,就是运算符重载或compare函数重写,没有学过的同学可能很困难,学过了就很简单 代码 #in

qq_44992782的博客 257

【PAT】1129.Recommendation System` (25)【Set集合使用】

题目描述 Recommendation system predicts the preference that a user would give to an item. Now you are asked to program a very simple recommendation system that rates the user’s preference by the number of...

tjj1998的博客 238

PAT甲级刷题之路——1129 Recommendation System

PAT A1129 Recommendation System(25分)原题如下题目大意自己的想法 原题如下 题目大意 编写一个推荐系统判断用户的偏好。 输入: 列表的总数量N、可以给用户提供的最多推荐数K。 接下来是用户接触的列表。 输出: 输出前面最多的不超过k的数字,按出现次数排序,若出现次数相同则按照大小排列。 自己的想法 每知道一个数就重新排序一次,输出前不超过k个的推荐名单。 ...

qq_43677396的博客 430

PAT 1129 Recommendation System

原题链接:1129 Recommendation System (25分) 关键词:set、结构体排序 参考的柳神博客:PAT 1129. Recommendation System (25) 甲级 题目大意: 编写一个简单的推荐系统,能够通过分析用户对各种商品的访问次数来预测用户的偏好进行推荐商品。

cwtnice的博客 260

PAT刷题记录-甲级

前言 记录PAT刷题笔记和代码。算法笔记中例题的记录已经放在《算法刷题笔记》文章中了。以下是PAT题库中算法笔记中未出现的题目,这里均为PAT甲级题目。 甲级 A1001

Maxi_0902的博客 1422

PAT甲级刷题笔记

PAT甲级刷题笔记一些自带函数的用法memset 一些自带函数的用法 memset 头文件:cstring int a[10]; memset(a,1,sizeof(a)); //将数组a内的元素初值设置为1

genwin_T的博客 927

PAT甲级1129 Recommendation System:[C++题解]统计前k个商品

刷题

阿正的梦工坊 493

PAT 甲级 1129  Recommendation System

1129 Recommendation System (25 point(s)) Recommendation system predicts the preference that a user would give to an item. Now you are asked to program a very simple recommendation system that rates t...

漫浸天空的雨色的备忘录~ 663

PAT甲级1129

重载运算符,set有自动排序功能,还能log级别查找出来删除更新 #include<bits/stdc++.h> #define FI first #define SE second using namespace std; typedef long long ll; typedef pair<int, int> P; const int maxn = 1e5 ...

床前明月光 277

PAT甲级1126~1130|C++实现

PAT甲级1126 Eulerian Path (25分)|C++实现 PAT甲级1127 ZigZagging on a Tree (30分)|C++实现 PAT甲级1128 N Queens Puzzle (20分)|C++实现 PAT甲级1129 Recommendation System (25分)|C++实现 PAT甲级1130 Infix Expression (25分)|C++实现

weixin_42393947的博客 1945
上一篇: PAT甲级1128解题报告
下一篇: PAT甲级1147解题报告
Tate_Brown
博客等级 码龄9年 39粉丝 107原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值