做近似最近邻搜索的实验时,需要用到一些开源数据集,这些数据集的格式并不都是统一的,常见的有fvecs&ivecs格式,hdf5格式。能够读取和保存这些格式的文件是实验的基础,另一方面,测试不同的数据集时,可能需要将一种格式转换成另一种格式。 因为实验代码是以载入fvecs格式数据写的,需要将 ...
PAT乙级1026 || 程序运行时间(详解,C/C++示例,测试点分析)
程序运行时间题目描述要获得一个 C 语言程序的运行时间,常用的方法是调用头文件 time.h,其中提供了 clock() 函数,可以捕捉从程序开始运行到 clock() 被调用时所耗费的时间。这个时间单位是 clock tick,即“时钟打点”。同时还有一个常数 CLK_TCK,给出了机器时钟每秒所 ...
PAT乙级1025 || 反转链表(详解,C/C++示例,测试点分析)
反转链表题目描述给定一个常数 K 以及一个单链表 L,请编写程序将 L 中每 K 个结点反转。例如:给定 L 为 1→2→3→4→5→6,K 为 3,则输出应该为 3→2→1→6→5→4;如果 K 为 4,则输出应该为 4→3→2→1→5→6,即最后不到 K 个元素不反转。 输入格式每个输入包含 1 ...
PAT乙级1024 || 科学计数法(详解,C/C++示例,测试点分析)
科学计数法题目描述科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式[+-] [1-9].[0-9]+E[+-][0-9]+,即数字的整数部分只有 1 位,小数部分至少有 1 位,该数字及其指数部分的正负号即使对正数也必定明确给出。现以科学计数法的格式给出实数 A,请编写程 ...
PAT乙级1023 || 组个最小数(详解,C/C++示例,测试点分析)
组个最小数题目描述现给定若干个范围在 0-9 的数字。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意 0 不能做首位)。例如:给定三个 0,一个 1,两个 5,三个 7,我们得到的最小的数就是 100055777。现给定数字,请编写程序输出能够组成的最小的数。 输 ...
PAT乙级1022 || D进制的A+B(详解,C/C++示例,测试点分析)
D进制的A+B题目描述输入两个非负 10 进制整数 A 和 B (≤ $2^{30}$ −1),输出 A+B 的 D (1<D≤10)进制数。 输入格式输入在一行中依次给出 3 个整数 A、B 和 D。 输出格式输出 A+B 的 D 进制数。 输入样例123 456 8 输出样例1103 问题 ...
PAT乙级1021 || 个位数统计(详解,C/C++示例,测试点分析)
个位数统计题目描述给定一个$k$位整数 $N=d_{k−1}10^{k−1}+⋯+d_110^1+d_0$$ (0≤d_i ≤9, i=0,⋯,k−1, d_{k−1} >0)$,请编写程序统计每种不同的个位数字出现的次数。例如:给定 $N=100311$,则有 2 个 0,3 个 1,和 1 ...
PAT乙级1020 || 月饼(详解,C/C++示例,测试点分析)
月饼题目描述月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需求量,请你计算可以获得的最大收益是多少。注意:销售时允许取出一部分库存。样例给出的情形是这样的:假如我们有 3 种月饼,其库存量分别为 18、15、10 万吨,总售 ...
PAT乙级1019 || 数字黑洞(详解,C/C++示例,测试点分析)
数字黑洞题目描述给定任一个各位数字不完全相同的 4 位正整数,如果我们先把 4 个数字按非递增排序,再按非递减排序,然后用第 1 个数字减第 2 个数字,将得到一个新的数字。一直重复这样做,我们很快会停在有“数字黑洞”之称的 6174,这个神奇的数字也叫 Kaprekar 常数。例如,我们从6767 ...
PAT乙级1018 || 锤子剪刀布(详解,C/C++示例,测试点分析)
锤子剪刀布题目描述大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示:现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。 输入格式输入第 1 行给出正整数 N(≤$10^5$),即双方交锋的次数。随后 N 行,每行给出一次交锋的信息,即甲、乙 ...