![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
pat
Tong XU
欣赏简洁的代码是一种赏心悦目的事情。
展开
-
1025 反转链表(25 分)
给定一个常数 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 个测试用例。每个测试用例第 1 行给出第 1 个结点的地址、结点总个数正整数 N (≤105)、以及...原创 2018-09-04 23:01:18 · 118 阅读 · 0 评论 -
1048 数字加密(20 分)
本题要求实现一种数字加密方法。首先固定一个加密用正整数 A,对任一正整数 B,将其每 1 位数字与 A 的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对 13 取余——这里用 J 代表 10、Q 代表 11、K 代表 12;对偶数位,用 B 的数字减去 A 的数字,若结果为负数,则再加 10。这里令个位为第 1 位。输入格式:输入在一行中依次给出 A 和 B,均为不超过 10...原创 2018-09-05 13:07:50 · 115 阅读 · 0 评论 -
1039 到底买不买(20 分)
小红想买些珠子做一串自己喜欢的珠串。卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖。于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要的珠子?如果是,那么告诉她有多少多余的珠子;如果不是,那么告诉她缺了多少珠子。为方便起见,我们用[0-9]、[a-z]、[A-Z]范围内的字符来表示颜色。例如在图1中,第3串是小红想做的珠串;那么第1串可以买,因为包含了全部她想要的珠子,...原创 2018-09-03 07:52:27 · 215 阅读 · 0 评论 -
1041 考试座位号(15 分)
每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位。正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考试座位就座。但有些考生迟到了,试机已经结束,他们只能拿着领到的试机座位号码求助于你,从后台查出他们的考试座位号码。输入格式:输入第一行给出一个正整数 N(≤1000),随后 N 行,每行给出一...原创 2018-09-03 08:03:39 · 93 阅读 · 0 评论 -
1046 划拳(15 分)
划拳是古老中国酒文化的一个有趣的组成部分。酒桌上两人划拳的方法为:每人口中喊出一个数字,同时用手比划出一个数字。如果谁比划出的数字正好等于两人喊出的数字之和,谁就赢了,输家罚一杯酒。两人同赢或两人同输则继续下一轮,直到唯一的赢家出现。下面给出甲、乙两人的划拳记录,请你统计他们最后分别喝了多少杯酒。输入格式:输入第一行先给出一个正整数 N(≤100),随后 N 行,每行给出一轮划拳的记录...原创 2018-09-03 08:35:30 · 659 阅读 · 0 评论 -
7-8 列出连通集 (25 分)
7-8 列出连通集 (25 分)给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集。假设顶点从0到N−1编号。进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序访问邻接点。输入格式:输入第1行给出2个整数N(0<N≤10)和E,分别是图的顶点数和边数。随后E行,每行给出一条边的两个端点。每行中的数字之间用1空格分隔。输出格式:按照"{...原创 2018-10-12 15:00:12 · 218 阅读 · 0 评论 -
7-4 家庭房产 (25 分)
7-4 家庭房产 (25 分)给定每个人的家庭成员和其自己名下的房产,请你统计出每个家庭的人口数、人均房产面积及房产套数。输入格式:输入第一行给出一个正整数N(≤1000),随后N行,每行按下列格式给出一个人的房产:编号 父 母 k 孩子1 ... 孩子k 房产套数 总面积其中编号是每个人独有的一个4位数的编号;父和母分别是该编号对应的这个人的父母的编号(如果已经过世,则显...原创 2019-01-18 14:31:57 · 1615 阅读 · 1 评论 -
7-1 天梯赛座位分配 (20 分)
天梯赛每年有大量参赛队员,要保证同一所学校的所有队员都不能相邻,分配座位就成为一件比较麻烦的事情。为此我们制定如下策略:假设某赛场有 N 所学校参赛,第 i 所学校有 M[i] 支队伍,每队 10 位参赛选手。令每校选手排成一列纵队,第 i+1 队的选手排在第 i 队选手之后。从第 1 所学校开始,各校的第 1 位队员顺次入座,然后是各校的第 2 位队员…… 以此类推。如果最后只剩下 1 所学校的...原创 2019-01-18 15:21:09 · 2441 阅读 · 0 评论 -
7-2 简易连连看 (20 分)
本题要求实现一个简易连连看游戏模拟程序。给定一个2N×2N的方阵网格游戏盘面,每个格子中放置一些符号。这些符号一定是成对出现的,同一个符号可能不止一对。程序读入玩家给出的一对位置(x1,y1)、(x2,y2),判断这两个位置上的符号是否匹配。如果匹配成功,则将两个符号消为“*”并输出消去后的盘面;否则输出“Uh-oh”。若匹配错误达到3次,则输出“Game Over”并...原创 2019-01-18 16:26:40 · 650 阅读 · 0 评论 -
7-3 不能用循环是一件多么悲伤的事 (30 分)
下面是一个算到10的加法表:0 + 0 = 0 0 + 1 = 1 0 + 2 = 2 0 + 3 = 3 0 + 4 = 4 0 + 5 = 5 0 + 6 = 6 0 + 7 = 7 0 + 8 = 8 0 + 9 = 9 0 +10 = 10 1 + 0 = 1 1 + 1 = 2 1 + 2 = 3 1 + 3 = 4 1 + 4 = 5 1 + 5...原创 2019-01-18 16:31:26 · 424 阅读 · 1 评论 -
7-10 晨阳哥哥lol之推塔 (20 分)
在非常流行的LOL游戏中,想要获胜,必须要推塔,推塔会为全队带来经济收益和经验收益,所以在很多情况下我们要尽力推掉一座塔。现在假设我们在敌方塔下,我们知道自身当前血量X,自身攻击力K,敌方塔下有N(N<=20)只己方小兵,每个小兵血量为x[i],攻击力为k[i],没有敌方小兵,防御塔生命值为A,攻击力B,我们都知道,即使小兵只剩下一点血,也会消耗防御塔一次攻击,假设小兵,英雄,防御塔攻击速度...原创 2019-01-25 18:57:26 · 786 阅读 · 0 评论 -
7-1 二分法求多项式单根 (20 分)
7-1 二分法求多项式单根 (20 分)二分法求函数根的原理为:如果连续函数f(x)在区间[a,b]的两个端点取值异号,即f(a)f(b)<0,则它在这个区间内至少存在1个根r,即f(r)=0。二分法的步骤为:检查区间长度,如果小于给定阈值,则停止,输出区间中点(a+b)/2;否则 如果f(a)f(b)<0,则计算中点的值f((a+b)/2); 如果f((a+b)/2)...原创 2019-01-25 19:38:42 · 507 阅读 · 0 评论 -
7-4 Swan学院社团招新 (20 分)
7-4 Swan学院社团招新 (20 分)Swan学院社团招新,招新宣讲会分散在不同时间段,大一新生小花花想知道自己最多能完整的参加多少个招新宣讲会(参加一个招新宣讲会的时候不能中断或离开)。 【问题说明】这个问题是对几个相互竞争的招新宣讲会活动进行调度,它们都要求以独占的方式使用某一公共资源(小花花)。调度的目标是找出一个最大的相互兼容的活动集合。 活动选择问题就是要选择出一个由互相兼容的问...原创 2019-01-25 20:19:42 · 954 阅读 · 0 评论 -
7-1 求链式线性表的倒数第K项 (20 分)
7-1 求链式线性表的倒数第K项 (20 分)给定一系列正整数,请设计一个尽可能高效的算法,查找倒数第K个位置上的数字。输入格式:输入首先给出一个正整数K,随后是若干正整数,最后以一个负整数表示结尾(该负数不算在序列内,不要处理)。输出格式:输出倒数第K个位置上的数据。如果这个位置不存在,输出错误信息NULL。输入样例:4 1 2 3 4 5 6 7 8 9 0 -1...原创 2019-01-25 20:26:58 · 2360 阅读 · 0 评论 -
7-7 图着色问题 (25 分)
7-7 图着色问题 (25 分)图着色问题是一个著名的NP完全问题。给定无向图G=(V,E),问可否用K种颜色为V中的每一个顶点分配一种颜色,使得不会有两个相邻顶点具有同一种颜色?但本题并不是要你解决这个着色问题,而是对给定的一种颜色分配,请你判断这是否是图着色问题的一个解。输入格式:输入在第一行给出3个整数V(0<V≤500)、E(≥0)和K(0<K≤V),分别是无向...原创 2019-01-22 12:34:31 · 2323 阅读 · 1 评论 -
7-2 串的模式匹配 (20 分)
7-2 串的模式匹配 (20 分)给定一个主串S和一个模式T,要求在主串S中找出与模式T相匹配的子串,返回相匹配的子串中的第一个字符在主串S中出现的位置。输入格式:输入有两行: 第一行是主串S; 第二行是模式T.输出格式:输出相匹配的子串中的第一个字符在主串S中出现的位置。若匹配失败,输出0.输入样例:在这里给出一组输入。例如:aaaaababa输出样例:...原创 2019-01-22 12:52:30 · 6612 阅读 · 0 评论 -
7-6 一帮一 (15 分)
“一帮一学习小组”是中小学中常见的学习组织方式,老师把学习成绩靠前的学生跟学习成绩靠后的学生排在一组。本题就请你编写程序帮助老师自动完成这个分配工作,即在得到全班学生的排名后,在当前尚未分组的学生中,将名次最靠前的学生与名次最靠后的异性学生分为一组。输入格式:输入第一行给出正偶数N(≤50),即全班学生的人数。此后N行,按照名次从高到低的顺序给出每个学生的性别(0代表女生,1代表男生)和姓...原创 2019-01-22 13:21:16 · 1422 阅读 · 0 评论 -
7-3 抢红包 (25 分)
7-3 抢红包 (25 分)没有人没抢过红包吧…… 这里给出N个人之间互相发红包、抢红包的记录,请你统计一下他们抢红包的收获。输入格式:输入第一行给出一个正整数N(≤104),即参与发红包和抢红包的总人数,则这些人从1到N编号。随后N行,第i行给出编号为i的人发红包的记录,格式如下:KN1P1⋯NKPK其中K(0≤K≤20)是发出去的红包个数,N...原创 2019-01-22 13:36:57 · 1136 阅读 · 0 评论 -
7-1 求一元二次方程的根 (20 分)
7-1 求一元二次方程的根 (20 分)本题目要求一元二次方程的根,结果保留2位小数。输入格式:输入在一行中给出3个浮点系数a、b、c,中间用空格分开。输出格式:根据系数情况,输出不同结果:1)如果方程有两个不相等的实数根,则每行输出一个根,先大后小;2)如果方程有两个不相等复数根,则每行按照格式“实部+虚部i”输出一个根,先输出虚部为正的,后输出虚部为负的;3)如...原创 2019-01-22 14:30:11 · 8803 阅读 · 1 评论 -
7-7 狐狸和兔子** (10 分)
7-7 狐狸和兔子** (10 分)在下图所示的棋盘中,F 表示狐狸,H 表示兔子。狐狸每次可以向左或向右移动1格,兔子每次可以向左或向右跳过2格进到第3格里。狐狸先走,然后它们交替移动。如果兔子跳进狐狸所在的格子则会被吃掉。如果狐狸走进兔子所在的格子可以把兔子吃掉。狐狸 F 的起始位置固定为第 1 格,兔子 H 的起始位置任意。假设双方都非常聪明。那么兔子的起始位置至关重要。...原创 2019-01-27 19:00:24 · 1170 阅读 · 0 评论 -
7-5 30056 字符串连接 (15 分)
7-5 30056 字符串连接 (15 分)从键盘输入俩个字符串a和b,要求不用库函数strcat把b的前五个字符连接到a中;如果b的长度小于5,则把b中的所有元素都连接到a中。输入格式:输入两个字符串a,b。输出格式:b的前5个元素连接到a后的字符串。输入样例:abcdefg1234567输出样例:abcdefg12345输入样例:zyxw...原创 2019-01-27 19:05:06 · 1664 阅读 · 0 评论 -
7-6 点赞 (20 分)
7-6 点赞 (20 分)微博上有个“点赞”功能,你可以为你喜欢的博文点个赞表示支持。每篇博文都有一些刻画其特性的标签,而你点赞的博文的类型,也间接刻画了你的特性。本题就要求你写个程序,通过统计一个人点赞的纪录,分析这个人的特性。输入格式:输入在第一行给出一个正整数N(≤1000),是该用户点赞的博文数量。随后N行,每行给出一篇被其点赞的博文的特性描述,格式为“K F1⋯FK...原创 2019-01-27 19:11:46 · 1776 阅读 · 1 评论 -
7-5 德才论 (25 分)
7-5 德才论 (25 分)宋代史学家司马光在《资治通鉴》中有一段著名的“德才论”:“是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子,才胜德谓之小人。凡取人之术,苟不得圣人,君子而与之,与其得小人,不若得愚人。”现给出一批考生的德才分数,请根据司马光的理论给出录取排名。输入格式:输入第一行给出 3 个正整数,分别为:N(≤105),即考生总数;L(≥60),为录取最低...原创 2019-01-22 15:30:25 · 1168 阅读 · 0 评论 -
7-2 喊山 (30 分)
7-2 喊山 (30 分)喊山,是人双手围在嘴边成喇叭状,对着远方高山发出“喂—喂喂—喂喂喂……”的呼唤。呼唤声通过空气的传递,回荡于深谷之间,传送到人们耳中,发出约定俗成的“讯号”,达到声讯传递交流的目的。原来它是彝族先民用来求援呼救的“讯号”,慢慢地人们在生活实践中发现了它的实用价值,便把它作为一种交流工具世代传袭使用。(图文摘自:http://news.xrxxw.com/newssho...原创 2019-01-27 22:50:24 · 1765 阅读 · 0 评论 -
7-6 部分排序 (15 分)
7-6 部分排序 (15 分)对于一组数据,我们可以只对原先处在中间位置的那些元素进行排序。输入格式:在一行内输入n r a1 a2 ... an 其中,不大于200的正整数n表示该组数据的个数;不大于200的非负整数r表示该组数据两端各自留有r个数不参与排序,若r+r>=n,则该组数据无需排序。整数a1 a2 ... an是该组的n个数据,且都在8位以内。输出格式:...原创 2019-01-28 10:35:02 · 5254 阅读 · 1 评论 -
7-4 功夫传人 (25 分)
7-4 功夫传人 (25 分)一门武功能否传承久远并被发扬光大,是要看缘分的。一般来说,师傅传授给徒弟的武功总要打个折扣,于是越往后传,弟子们的功夫就越弱…… 直到某一支的某一代突然出现一个天分特别高的弟子(或者是吃到了灵丹、挖到了特别的秘笈),会将功夫的威力一下子放大N倍 —— 我们称这种弟子为“得道者”。这里我们来考察某一位祖师爷门下的徒子徒孙家谱:假设家谱中的每个人只有1位师傅(除了...原创 2019-01-28 11:07:05 · 208 阅读 · 0 评论 -
7-2 互评成绩 (25 分)
7-2 互评成绩 (25 分)学生互评作业的简单规则是这样定的:每个人的作业会被k个同学评审,得到k个成绩。系统需要去掉一个最高分和一个最低分,将剩下的分数取平均,就得到这个学生的最后成绩。本题就要求你编写这个互评系统的算分模块。输入格式:输入第一行给出3个正整数N(3 < N ≤104,学生总数)、k(3 ≤ k ≤ 10,每份作业的评审数)、M(≤ 20,需要输出的学生...原创 2019-01-28 11:50:30 · 1651 阅读 · 0 评论 -
7-2 删除字符串中的子串 (20 分)
7-2 删除字符串中的子串 (20 分)输入2个字符串S1和S2,要求删除字符串S1中出现的所有子串S2,即结果字符串中不能包含S2。输入格式:输入在2行中分别给出不超过80个字符长度的、以回车结束的2个非空字符串,对应S1和S2。输出格式:在一行中输出删除字符串S1中出现的所有子串S2后的结果字符串。输入样例:Tomcat is a male ccatatcat...原创 2019-01-22 20:54:30 · 2129 阅读 · 0 评论 -
7-5 分而治之 (25 分)
7-5 分而治之 (25 分)分而治之,各个击破是兵家常用的策略之一。在战争中,我们希望首先攻下敌方的部分城市,使其剩余的城市变成孤立无援,然后再分头各个击破。为此参谋部提供了若干打击方案。本题就请你编写程序,判断每个方案的可行性。输入格式:输入在第一行给出两个正整数 N 和 M(均不超过10 000),分别为敌方城市个数(于是默认城市从 1 到 N 编号)和连接两城市的通路条数。随后...原创 2019-01-28 22:27:53 · 972 阅读 · 0 评论 -
L1-056 猜数字 (20 分)
L1-056 猜数字 (20 分)一群人坐在一起,每人猜一个 100 以内的数,谁的数字最接近大家平均数的一半就赢。本题就要求你找出其中的赢家。输入格式:输入在第一行给出一个正整数N(≤104)。随后 N 行,每行给出一个玩家的名字(由不超过8个英文字母组成的字符串)和其猜的正整数(≤ 100)。输出格式:在一行中顺序输出:大家平均数的一半(只输出整数部分)、赢家的名字,...原创 2019-03-01 15:05:42 · 328 阅读 · 0 评论 -
L2-026 小字辈 (25 分)
L2-026 小字辈 (25 分)本题给定一个庞大家族的家谱,要请你给出最小一辈的名单。输入格式:输入在第一行给出家族人口总数 N(不超过 100 000 的正整数) —— 简单起见,我们把家族成员从 1 到 N 编号。随后第二行给出 N 个编号,其中第 i 个编号对应第 i 位成员的父/母。家谱中辈分最高的老祖宗对应的父/母编号为 -1。一行中的数字间以空格分隔。输出格式:首...原创 2019-03-02 11:34:33 · 572 阅读 · 0 评论 -
L1-054 福到了 (15 分)
L1-054福到了(15 分)“福”字倒着贴,寓意“福到”。不论到底算不算民俗,本题且请你编写程序,把各种汉字倒过来输出。这里要处理的每个汉字是由一个 N×N 的网格组成的,网格中的元素或者为字符@或者为空格。而倒过来的汉字所用的字符由裁判指定。输入格式:输入在第一行中给出倒过来的汉字所用的字符、以及网格的规模 N (不超过100的正整数),其间以 1 个空格分隔;随后 N ...原创 2019-03-02 15:48:16 · 125 阅读 · 0 评论 -
String的getline()函数用法
#include<iostream>#include<string>#include<vector>using namespace std;int main(){ int n=0; cin>>n; vector<string> arr(n); for(int i=0;i<n;i++){...转载 2019-03-03 11:22:21 · 2918 阅读 · 1 评论 -
C++二分模板
#include <iostream>#include <algorithm>#include <math.h>#include <cstdio>#include <string.h>#include <string>using namespace std;int n;int a[501];bool m...原创 2019-03-08 15:56:15 · 960 阅读 · 0 评论 -
7-8 红色警报 (25 分)
7-8红色警报(25 分)战争中保持各个城市间的连通性非常重要。本题要求你编写一个报警程序,当失去一个城市导致国家被分裂为多个无法连通的区域时,就发出红色警报。注意:若该国本来就不完全连通,是分裂的k个区域,而失去一个城市并不改变其他城市之间的连通性,则不要发出警报。输入格式:输入在第一行给出两个整数N(0<N≤500)和M(≤5000),分别为城市个数(于是默认城...原创 2019-03-08 18:56:27 · 292 阅读 · 0 评论 -
L2-005 集合相似度 (25 分)
L2-005 集合相似度 (25 分)给定两个整数集合,它们的相似度定义为:Nc/Nt×100%。其中Nc是两个集合都有的不相等整数的个数,Nt是两个集合一共有的不相等整数的个数。你的任务就是计算任意一对给定集合的相似度。输入格式:输入第一行给出一个正整数N(≤50),是集合的个数。随后N行,每行对应一个集合。每个集合首先给出一个正整数M(≤104),是集...原创 2019-03-08 19:38:18 · 155 阅读 · 0 评论 -
7-3 人以群分 (25 分)
7-3 人以群分 (25 分)社交网络中我们给每个人定义了一个“活跃度”,现希望根据这个指标把人群分为两大类,即外向型(outgoing,即活跃度高的)和内向型(introverted,即活跃度低的)。要求两类人群的规模尽可能接近,而他们的总活跃度差距尽可能拉开。输入格式:输入第一行给出一个正整数N(2≤N≤105)。随后一行给出N个正整数,分别是每个人的活跃度,其间以空格分隔。...原创 2019-03-08 20:04:38 · 928 阅读 · 0 评论 -
7-7 汽车加油问题 (20 分)
7-7 汽车加油问题 (20 分)题目来源:王晓东《算法设计与分析》一辆汽车加满油后可行驶 n公里。旅途中有若干个加油站。设计一个有效算法,指出应 在哪些加油站停靠加油,使沿途加油次数最少。输入格式:第一行有 2 个正整数n和 k(k<=1000 ),表示汽车加满油后可行驶n公里,且旅途中有 k个加油站。 第二行有 k+1 个整数,表示第 k 个加油站与第k-1 个加油站之间...原创 2019-03-08 21:10:17 · 1395 阅读 · 0 评论 -
7-8 程序存储问题 (90 分)
7-8 程序存储问题 (90 分)设有n 个程序{1,2,…, n }要存放在长度为L的磁带上。程序i存放在磁带上的长度是 li,1≤i≤n。 程序存储问题要求确定这n 个程序在磁带上的一个存储方案, 使得能够在磁带上存储尽可能多的程序。 对于给定的n个程序存放在磁带上的长度,计算磁带上最多可以存储的程序数。输入格式:第一行是2 个正整数,分别表示文件个数n和磁带的长度L。接下来的1行...原创 2019-03-08 21:16:00 · 826 阅读 · 0 评论 -
L1-3 阅览室 (20 分)
L1-3 阅览室 (20 分)天梯图书阅览室请你编写一个简单的图书借阅统计程序。当读者借书时,管理员输入书号并按下S键,程序开始计时;当读者还书时,管理员输入书号并按下E键,程序结束计时。书号为不超过1000的正整数。当管理员将0作为书号输入时,表示一天工作结束,你的程序应输出当天的读者借书次数和平均阅读时间。注意:由于线路偶尔会有故障,可能出现不完整的纪录,即只有S没有E,或者只有E没有...原创 2019-03-09 19:54:54 · 671 阅读 · 0 评论