有理数四则运算题目描述本题要求编写程序,计算 2 个有理数的和、差、积、商。 输入格式输入在一行中按照 a1/b1 a2/b2 的格式给出两个分数形式的有理数,其中分子和分母全是整型范围内的整数,负号只可能出现在分子前,分母不为 0。 输出格式分别在 4 行中按照 有理数1 运算符 有理数2 = 结 ...
PAT乙级1033 || 旧键盘打字(详解,C/C++示例,测试点分析)
旧键盘打字题目描述旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及坏掉的那些键,打出的结果文字会是怎样? 输入格式输入在 2 行中分别给出坏掉的那些键、以及应该输入的文字。其中对应英文字母的坏键以大写给出;每段文字是不超过 $10^5$ 个字符的串。 ...
极度快速的近似最近邻搜索算法(EFANNA)学习笔记
引言极度快速的近似最近邻搜索算法(EFANNA)是NSG的作者之前的一篇论文,这篇论文主要介绍用更快的方法建立KNN图并且建立一个高性能的KNN图索引。这种方法建KNN图时采用类似于Wei等人提出的方案(地址),首先初始化一个KNN图,然后再使用NN-descent的方法精细化KNN图。该论文提出的 ...
PAT乙级1032 || 挖掘机技术哪家强(详解,C/C++示例,测试点分析)
挖掘机技术哪家强题目描述为了用事实说明挖掘机技术到底哪家强,PAT 组织了一场挖掘机技能大赛。现请你根据比赛结果统计出技术最强的那个学校。 输入格式输入在第 1 行给出不超过 $10^5$ 的正整数 N,即参赛人数。随后 N 行,每行给出一位参赛者的信息和成绩,包括其所代表的学校的编号(从 1 开始 ...
PAT乙级1031 || 查验身份证(详解,C/C++示例,测试点分析)
查验身份证题目描述一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然后将计算的和对11取模得到值Z;最后按照以下关系对应Z值与校验码M的值 ...
python读取HDF5格式文件并保存为fvecs和ivecs格式(将HDF5格式gist数据集转换为fvecs和ivecs格式)
引言网站的gist数据集下载很慢,尝试多次都失败了,科学上网也不行。github上(地址)提供了很多hdf5格式的数据集,其中也包括gist,下载速度很快。但是实验的代码处理的数据格式是fvecs和ivecs格式的,需要将hdf5格式的数据进行转换。 代码示例1(转换成fvecs格式)import ...
PAT乙级1030 || 完美数列(详解,C/C++示例,测试点分析)
完美数列题目描述给定一个正整数数列,和正整数 p,设这个数列中的最大值是 M,最小值是 m,如果 M ≤ mp,则称这个数列是完美数列。现在给定参数 p 和一些正整数,请你从中选择尽可能多的数构成一个完美数列。 输入格式输入第一行给出两个正整数 N 和 p,其中 N(≤$10^5$)是输入的正整数的 ...
PAT乙级1029 || 旧键盘(详解,C/C++示例,测试点分析)
旧键盘题目描述旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及实际被输入的文字,请你列出肯定坏掉的那些键。 输入格式输入在 2 行中分别给出应该输入的文字、以及实际被输入的文字。每段文字是不超过 80 个字符的串,由字母 A-Z(包括大、小写)、数字 ...
PAT乙级1028 || 人口普查(详解,C/C++示例,测试点分析)
人口普查题目描述某城镇进行人口普查,得到了全体居民的生日。现请你写个程序,找出镇上最年长和最年轻的人。这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过 200 岁的老人,而今天是 2014 年 9 月 6 日,所以超过 200 岁的生日和未出生的生日都是不合理的,应该被过滤 ...
PAT乙级1027 || 打印沙漏(详解,C/C++示例,测试点分析)
打印沙漏题目描述本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印 ***** *** * ******** 所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。给定 ...