
C/C++
文章平均质量分 75
偶尔写博客
偶尔记录下自己的学习情况,我很菜。
展开
-
神奇的化合物(优先队列)
描述在遥远的外星球上,所有的化合物都是通过两个单质元素或者两个化合物或者一个单质元素一个化合物结合而成,任意的单质元素或者化合物都具有特定的结合能,其中单质元素的结合能是预先固定的,而化合物的结合能则是构成它的两种物质的结合能之和。两种物质结合时,需要消耗的能量恰好等于这两种物质的结合能。假定有某种化合物是由n种元素化合而成,请问要如何结合才能使得它消耗的能量最低?比如某化合物由3种单质构...原创 2020-05-12 13:11:28 · 521 阅读 · 0 评论 -
一元三次方程(二分查找)
之前做过一到这种题目,但忘记把它写入博客,这里记录一下,代码和题目要求来自于次#include <stdio.h>#include <math.h>int main(){ double a = -10; double b = 10; double c; double f1, f2, f3; do { f1 = 2*pow(a, 3) - 4*pow(a, 2) + 3*a - 6; // 得出左端项的值f1 f2 = 2*pow(b, 3)原创 2020-05-12 10:55:16 · 547 阅读 · 0 评论 -
高山速降比赛(dp最长递减子序列)
描述滑雪场举行了一场高山速降比赛,起点高度1000米,终点高度为0,举办者在中途设置了若干多个高度不同的落脚点,规定所有选手只能从起点到终点单向运动,每到达一个落脚点可以获得一个积分奖励,但是后一个得分落脚点的高度必须低于他前面得过分的落脚点,请你帮选手选择一条路线,使得他可以获得最多的积分奖励。例如有以下数据:1000 614 971 509 838 743 968 0表示一共有8个落...原创 2020-05-04 22:31:05 · 468 阅读 · 0 评论 -
左螺旋阵(模拟法)
描述一个n*m的左螺旋阵是一个从右上角开始逆时针方向旋转,从n*m开始依次填写数字直到1为止的矩阵(类似于蚊香盘)。例如一个4*4的左螺旋矩阵是下面这个样子的:13 14 15 1612 3 4 511 2 1 610 9 8 7再比如一个5行4列的左螺旋阵是下面这个样子的:17 18 19 2016 5 6 715 4 1 814 3 2 913 12 11 10格式...原创 2020-05-04 22:29:32 · 580 阅读 · 0 评论 -
扑克牌魔术(双端队列)
描述东哥是个乡村魔术师,COVID-19疫情期间闲来无事,用扑克牌给邻居们表演了一场小魔术:他将一叠预先洗好的扑克牌背面朝上拿在手中,先将最上面的扑克牌放到最下面,然后打开现在最上面的这张扑克牌,并放到边上,这是一张1;然后又将最上面的扑克牌放到最下面,再次打开最上面的扑克牌,这次是一张2;他依次重复这两个步骤:(1)将最上面的放到最下面,(2)打开最上面的这张扑克牌,最终打开的扑克牌依...原创 2020-05-03 22:12:33 · 1267 阅读 · 1 评论 -
逆序输出链表(数组模拟链表)
描述根据给定的数据建立一个由n(1≤n≤1000)个元素组成的链表,然后按逻辑顺序逆序输出其中所有的数据。每个元素节点由两个域组成:第一个域存储数据,第二个域存储后继元素所在的位置。特别的,头结点的第一个域用来存储整个链表的长度。例如头结点(5, 3)表示长度为5,后继元素在3号位置;元素节点(14,7)表示数据值为14,后继节点在7号位置。如果后继指针为0则表示链表结束。例如: (6, ...原创 2020-05-03 22:12:00 · 535 阅读 · 0 评论 -
按字典规则比较字符串大小(暴力枚举)
描述按照字典规则比较两个英文字符串的大小,基本规则如下:(1)字符串左对齐比较(2)字母无大小写对应关系时忽略大小写,比如'B'不仅大于'A',也大于'a'(3)字母有大小写对应关系时,大写小于小写,比如'A'小于'a'(4)字符串中只有大小写字母和空格,空格小于任何字母例如:"aBc"<"abc","abcdef"<"abD","Abcd"<"abc"格式...原创 2020-05-03 22:11:23 · 4918 阅读 · 0 评论 -
最小新整数(贪心算法)
描述给定一个十进制正整数n(0 < n < 1000000000),每个数位上数字均不为0。n的位数为m。现在从m位中删除k位(0< k < m),求生成的新整数最小为多少?例如: n=9128456,k=2,则生成的新整数最小为12456。格式输入格式第一行t, 表示有t组数据; 接下来t行,每一行表示一组测试数据,每组测试数据包含两个数字n,k。...原创 2020-04-22 22:22:19 · 3856 阅读 · 0 评论 -
高精度乘法(高精度计算)
描述输入两个高精度正整数M和N(M和N均小于100位)。求这两个高精度数的积。格式输入格式输入两个高精度正整数M和N。输出格式求这两个高精度数的积。样例输入样例363输出样例108限制时间限制: 1000 ms内存限制: 65536 KB#include<bits/stdc++.h>using namespac...原创 2020-04-22 00:55:23 · 796 阅读 · 1 评论 -
阶乘和 (高精度运算)
描述用高精度计算出S=1!+2!+3!+…+n!(n≤50),其中“!”表示阶乘,例如:5!=5×4×3×2×1。输入正整数n,输出计算结果S。格式输入格式一个正整数n。输出格式计算结果S。样例输入样例5输出样例153限制时间限制: 1000 ms内存限制: 65536 KB题目其实很简单的,这个题可以拆分为两个题,一个是高精度运...原创 2020-04-21 23:33:04 · 2719 阅读 · 1 评论 -
亲戚B (普通并查集)
描述或许你并不知道,你的某个朋友是你的亲戚。他可能是你的曾祖父的外公的女婿的外甥女的表姐的孙子。如果能得到完整的家谱,判断两个人是否是亲戚应该是可行的,但如果两个人的最近公共祖先与他们相隔好几代,使得家谱十分庞大,那么检验亲戚关系实非人力所能及。在这种情况下,最好的帮手就是计算机。为了将问题简化,你将得到一些亲戚关系的信息,如Marry和Tom是亲戚,Tom和Ben是亲戚,等等。从这些信息...原创 2020-04-21 00:54:15 · 735 阅读 · 0 评论 -
家谱(map + 普通并查集)
描述现代的人对于本家族血统越来越感兴趣,现在给出充足的父子关系,请你编写程序找到某个人的最早的祖先。格式输入格式由多行组成,首先是一系列有关父子关系的描述,其中每一组父子关系由二行组成,用#name的形式描写一组父子关系中的父亲的名字,用+name的形式描写一组父子关系中的儿子的名字;接下来用?name的形式表示要求该人的最早的祖先;最后用单独的一个$表示文件结束。规定每个人的名字...原创 2020-04-18 22:40:52 · 308 阅读 · 0 评论 -
食物链(补集/ 种类并查集)
描述动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。A吃B, B吃C,C吃A。现有N个动物,以1-N编号。每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种。有人用两种说法对这N个动物所构成的食物链关系进行描述:第一种说法是"1 X Y",表示X和Y是同类。第二种说法是"2 X Y",表示X吃Y。此人对N个动物,用上述两种说法,一句接一句地说...原创 2020-04-16 00:35:29 · 254 阅读 · 0 评论 -
分数线划定(结构体的排序)
题目描述世博会志愿者的选拔工作正在 A 市如火如荼的进行。为了选拔最合适的人才,A市对所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试。面试分数线根据计划录取人数的150%划定,即如果计划录取m名志愿者,则面试分数线为排名第m×150%(向下取整)名的选手的分数,而最终进入面试的选手为笔试成绩不低于面试分数线的所有选手。现在就请你编写程序划定面试分数线,并输出所有进入面试...原创 2020-04-12 00:55:30 · 358 阅读 · 0 评论 -
明明的随机数(桶排序)
描述明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。格式输入格式有2行,第1行为1个正整数,表示所生成的随机数的个数:N;...原创 2020-04-11 23:38:25 · 499 阅读 · 0 评论 -
团伙(反集 / 种类并查集)
描述在某城市里住着n个人,任何两个认识的人不是朋友就是敌人,而且满足:1、我朋友的朋友是我的朋友;2、我敌人的敌人是我的朋友;所有是朋友的人组成一个团伙。告诉你关于这n个人的m条信息,即某两个人是朋友,或者某两个人是敌人,请你编写一个程序,计算出这个城市最多可能有多少个团伙?格式输入格式第1行为n和m,1 < n < 1000,1≤m≤100 000; 以下...原创 2020-04-10 23:11:25 · 1356 阅读 · 0 评论 -
1070 结绳 (25分)
给定一段一段的绳子,你需要把它们串成一条绳。每次串连的时候,是把两段绳子对折,再如下图所示套接在一起。这样得到的绳子又被当成是另一段绳子,可以再次对折去跟另一段绳子串连。每次串连后,原来两段绳子的长度就会减半。给定 N 段绳子的长度,你需要找出它们能串成的绳子的最大长度。输入格式:每个输入包含 1 个测试用例。每个测试用例第 1 行给出正整数 N (2≤N≤104);第 2 ...原创 2020-04-05 00:31:45 · 130 阅读 · 0 评论 -
1069 微博转发抽奖 (20分)
小明 PAT 考了满分,高兴之余决定发起微博转发抽奖活动,从转发的网友中按顺序每隔 N 个人就发出一个红包。请你编写程序帮助他确定中奖名单。输入格式:输入第一行给出三个正整数 M(≤ 1000)、N 和 S,分别是转发的总量、小明决定的中奖间隔、以及第一位中奖者的序号(编号从 1 开始)。随后 M 行,顺序给出转发微博的网友的昵称(不超过 20 个字符、不包含空格回车的非空字符串)。注...原创 2020-04-04 16:40:50 · 181 阅读 · 0 评论 -
1068 万绿丛中一点红 (20分)
对于计算机而言,颜色不过是像素点对应的一个 24 位的数值。现给定一幅分辨率为 M×N 的画,要求你找出万绿丛中的一点红,即有独一无二颜色的那个像素点,并且该点的颜色与其周围 8 个相邻像素的颜色差充分大。输入格式:输入第一行给出三个正整数,分别是 M 和 N(≤ 1000),即图像的分辨率;以及 TOL,是所求像素点与相邻点的颜色差阈值,色差超过 TOL 的点才被考虑。随后 N 行,每行...原创 2020-04-04 16:40:04 · 146 阅读 · 0 评论 -
1067 试密码 (20分)
当你试图登录某个系统却忘了密码时,系统一般只会允许你尝试有限多次,当超出允许次数时,账号就会被锁死。本题就请你实现这个小功能。输入格式:输入在第一行给出一个密码(长度不超过 20 的、不包含空格、Tab、回车的非空字符串)和一个正整数 N(≤ 10),分别是正确的密码和系统允许尝试的次数。随后每行给出一个以回车结束的非空字符串,是用户尝试输入的密码。输入保证至少有一次尝试。当读到一行只有单...原创 2020-04-04 16:39:03 · 133 阅读 · 0 评论 -
1066 图像过滤 (15分)
图像过滤是把图像中不重要的像素都染成背景色,使得重要部分被凸显出来。现给定一幅黑白图像,要求你将灰度值位于某指定区间内的所有像素颜色都用一种指定的颜色替换。输入格式:输入在第一行给出一幅图像的分辨率,即两个正整数 M 和 N(0<M,N≤500),另外是待过滤的灰度值区间端点 A 和 B(0≤A<B≤255)、以及指定的替换灰度值。随后 M 行,每行给出 N 个像素点的灰度值,...原创 2020-04-04 00:31:12 · 195 阅读 · 0 评论 -
1065 单身狗 (25分)
“单身狗”是中文对于单身人士的一种爱称。本题请你从上万人的大型派对中找出落单的客人,以便给予特殊关爱。输入格式:输入第一行给出一个正整数 N(≤ 50 000),是已知夫妻/伴侣的对数;随后 N 行,每行给出一对夫妻/伴侣——为方便起见,每人对应一个 ID 号,为 5 位数字(从 00000 到 99999),ID 间以空格分隔;之后给出一个正整数 M(≤ 10 000),为参加派对的总人...原创 2020-04-04 00:29:28 · 261 阅读 · 0 评论 -
1064 朋友数 (20分)
如果两个整数各位数字的和是一样的,则被称为是“朋友数”,而那个公共的和就是它们的“朋友证号”。例如 123 和 51 就是朋友数,因为 1+2+3 = 5+1 = 6,而 6 就是它们的朋友证号。给定一些整数,要求你统计一下它们中有多少个不同的朋友证号。输入格式:输入第一行给出正整数 N。随后一行给出 N 个正整数,数字间以空格分隔。题目保证所有数字小于 104。输出格式:首...原创 2020-04-04 00:28:23 · 167 阅读 · 0 评论 -
1063 计算谱半径 (20分)
在数学中,矩阵的“谱半径”是指其特征值的模集合的上确界。换言之,对于给定的 n 个复数空间的特征值 { a1+b1i,⋯,an+bni },它们的模为实部与虚部的平方和的开方,而“谱半径”就是最大模。现在给定一些复数空间的特征值,请你计算并输出这些特征值的谱半径。输入格式:输入第一行给出正整数 N(≤ 10 000)是输入的特征值的个数。随后 N 行,每行给出 ...原创 2020-04-04 00:27:35 · 128 阅读 · 0 评论 -
1062 最简分数 (20分)
一个分数一般写成两个整数相除的形式:N/M,其中 M 不为0。最简分数是指分子和分母没有公约数的分数表示形式。现给定两个不相等的正分数 N1/M1 和 N2/M2,要求你按从小到大的顺序列出它们之间分母为 K 的最简分数。输入格式:输入在一行中按 N/M 的格式给出两个正分数,随后是一个正整数分母 K,其间以空格分隔。题目保证给出的所有整数都不超过 1000。...原创 2020-04-04 00:26:46 · 467 阅读 · 0 评论 -
1061 判断题 (15分)
判断题的评判很简单,本题就要求你写个简单的程序帮助老师判题并统计学生们判断题的得分。输入格式:输入在第一行给出两个不超过 100 的正整数 N 和 M,分别是学生人数和判断题数量。第二行给出 M 个不超过 5 的正整数,是每道题的满分值。第三行给出每道题对应的正确答案,0 代表“非”,1 代表“是”。随后 N 行,每行给出一个学生的解答。数字间均以空格分隔。输出格式:按照输入的顺序...原创 2020-04-04 00:25:49 · 277 阅读 · 0 评论 -
1060 爱丁顿数 (25分)
英国天文学家爱丁顿很喜欢骑车。据说他为了炫耀自己的骑车功力,还定义了一个“爱丁顿数” E ,即满足有 E 天骑车超过 E 英里的最大整数 E。据说爱丁顿自己的 E 等于87。现给定某人 N 天的骑车距离,请你算出对应的爱丁顿数 E(≤N)。输入格式:输入第一行给出一个正整数 N (≤105),即连续骑车的天数;第二行给出 N 个非负整数,代表每天的骑车距离。输出格式:在一...原创 2020-04-04 00:24:58 · 186 阅读 · 0 评论 -
1059 C语言竞赛 (20分)
C 语言竞赛是浙江大学计算机学院主持的一个欢乐的竞赛。既然竞赛主旨是为了好玩,颁奖规则也就制定得很滑稽:0、冠军将赢得一份“神秘大奖”(比如很巨大的一本学生研究论文集……)。 1、排名为素数的学生将赢得最好的奖品 —— 小黄人玩偶! 2、其他人将得到巧克力。给定比赛的最终排名以及一系列参赛者的 ID,你要给出这些参赛者应该获得的奖品。输入格式:输入第一行给出一个正整数 N(≤10...原创 2020-04-03 23:46:13 · 141 阅读 · 0 评论 -
1058 选择题 (20分)
批改多选题是比较麻烦的事情,本题就请你写个程序帮助老师批改多选题,并且指出哪道题错的人最多。输入格式:输入在第一行给出两个正整数 N(≤ 1000)和 M(≤ 100),分别是学生人数和多选题的个数。随后 M 行,每行顺次给出一道题的满分值(不超过 5 的正整数)、选项个数(不少于 2 且不超过 5 的正整数)、正确选项个数(不超过选项个数的正整数)、所有正确选项。注意每题的选项从小写英文...原创 2020-04-03 14:52:02 · 192 阅读 · 0 评论 -
1057 数零壹 (20分)
给定一串长度不超过 105 的字符串,本题要求你将其中所有英文字母的序号(字母 a-z 对应序号 1-26,不分大小写)相加,得到整数 N,然后再分析一下 N 的二进制表示中有多少 0、多少 1。例如给定字符串 PAT (Basic),其字母序号之和为:16+1+20+2+1+19+9+3=71,而 71 的二进制是 1000111,即有 3 个 0、4 个 1。输入格式:输入在一行...原创 2020-04-03 14:48:53 · 212 阅读 · 0 评论 -
1056 组合数的和 (15分)
给定 N 个非 0 的个位数字,用其中任意 2 个数字都可以组合成 1 个 2 位的数字。要求所有可能组合出来的 2 位数字的和。例如给定 2、5、8,则可以组合出:25、28、52、58、82、85,它们的和为330。输入格式:输入在一行中先给出 N(1 < N < 10),随后给出 N 个不同的非 0 个位数字。数字间以空格分隔。输出格式:输出所有可能组合出来的2位...原创 2020-04-03 14:48:09 · 145 阅读 · 0 评论 -
1055 集体照 (25分)
拍集体照时队形很重要,这里对给定的 N 个人 K 排的队形设计排队规则如下: 每排人数为 N/K(向下取整),多出来的人全部站在最后一排; 后排所有人的个子都不比前排任何人矮; 每排中最高者站中间(中间位置为 m/2+1,其中 m 为该排人数,除法向下取整); 每排其他人以中间人为轴,按身高非增序,先右后左交替入队站在中间人的两侧(例如5人身高为190、188、...原创 2020-04-03 14:47:18 · 134 阅读 · 0 评论 -
1054 求平均值 (20分)
本题的基本要求非常简单:给定 N 个实数,计算它们的平均值。但复杂的是有些输入数据可能是非法的。一个“合法”的输入是 [−1000,1000] 区间内的实数,并且最多精确到小数点后 2 位。当你计算平均值的时候,不能把那些非法的数据算在内。输入格式:输入第一行给出正整数 N(≤100)。随后一行给出 N 个实数,数字间以一个空格分隔。输出格式:对每个非法输入,在一行中输出 ERRO...原创 2020-04-03 14:46:17 · 196 阅读 · 0 评论 -
1053 住房空置率 (20分)
在不打扰居民的前提下,统计住房空置率的一种方法是根据每户用电量的连续变化规律进行判断。判断方法如下: 在观察期内,若存在超过一半的日子用电量低于某给定的阈值 e,则该住房为“可能空置”; 若观察期超过某给定阈值 D 天,且满足上一个条件,则该住房为“空置”。 现给定某居民区的住户用电量数据,请你统计“可能空置”的比率和“空置”比率,即以上两种状态的住房占居民区住房总套数的百分比...原创 2020-04-03 14:45:20 · 142 阅读 · 0 评论 -
1052 卖个萌 (20分)
萌萌哒表情符号通常由“手”、“眼”、“口”三个主要部分组成。简单起见,我们假设一个表情符号是按下列格式输出的:[左手]([左眼][口][右眼])[右手]现给出可选用的符号集合,请你按用户的要求输出表情。输入格式:输入首先在前三行顺序对应给出手、眼、口的可选符号集。每个符号括在一对方括号 []内。题目保证每个集合都至少有一个符号,并不超过 10 个符号;每个符号包含 1 到...原创 2020-04-03 14:43:09 · 128 阅读 · 0 评论 -
1051 复数乘法 (15分)
复数可以写成 (A+Bi) 的常规形式,其中 A 是实部,B 是虚部,i 是虚数单位,满足 i2=−1;也可以写成极坐标下的指数形式 (R×e(Pi)),其中 R 是复数模,P 是辐角,i 是虚数单位,其等价于三角形式 R(cos(P)+isin(P))。现给定两个复数的 R 和 P,要求输出两数乘积的常规形式。输入格式:输入在一行中依次给出两个复数的 R1, P1...原创 2020-04-03 14:41:32 · 756 阅读 · 0 评论 -
1049 数列的片段和 (20分)
给定一个正数数列,我们可以从中截取任意的连续的几个数,称为片段。例如,给定数列 { 0.1, 0.2, 0.3, 0.4 },我们有 (0.1) (0.1, 0.2) (0.1, 0.2, 0.3) (0.1, 0.2, 0.3, 0.4) (0.2) (0.2, 0.3) (0.2, 0.3, 0.4) (0.3) (0.3, 0.4) (0.4) 这 10 个片段。给定正整数数列,求出全部...原创 2020-04-02 00:36:05 · 158 阅读 · 0 评论 -
1047 编程团体赛 (20分)
编程团体赛的规则为:每个参赛队由若干队员组成;所有队员独立比赛;参赛队的成绩为所有队员的成绩和;成绩最高的队获胜。现给定所有队员的比赛成绩,请你编写程序找出冠军队。输入格式:输入第一行给出一个正整数 N(≤104),即所有参赛队员总数。随后 N 行,每行给出一位队员的成绩,格式为:队伍编号-队员编号 成绩,其中队伍编号为 1 到 1000 的正整数,队员编号为 1 到 10 的正...原创 2020-04-02 00:34:49 · 149 阅读 · 0 评论 -
1045 快速排序 (25分)
著名的快速排序算法里有一个经典的划分过程:我们通常采用某种方法取一个元素作为主元,通过交换,把比主元小的元素放到它的左边,比主元大的元素放到它的右边。 给定划分后的 N 个互不相同的正整数的排列,请问有多少个元素可能是划分前选取的主元?例如给定 $N = 5$, 排列是1、3、2、4、5。则:1 的左边没有元素,右边的元素都比它大,所以它可能是主元; 尽管 3 的左边元素都比它小,但其右...原创 2020-04-02 00:33:59 · 131 阅读 · 0 评论 -
1043 输出PATest (20分)
给定一个长度不超过 104 的、仅由英文字母构成的字符串。请将字符重新调整顺序,按 PATestPATest.... 这样的顺序输出,并忽略其它字符。当然,六种字符的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按 PATest 的顺序打印,直到所有字符都被输出。输入格式:输入在一行中给出一个长度不超过 104 的、仅由英文字母构成的非空字符串。输出格式:在...原创 2020-04-02 00:32:15 · 113 阅读 · 0 评论