- 博客(130)
- 资源 (7)
- 收藏
- 关注
原创 L2-001 紧急救援 天梯赛(25 分C++)
作为一个城市的应急救援队伍的负责人,你有一张特殊的全国地图。在地图上显示有多个分散的城市和一些连接城市的快速道路。每个城市的救援队数量和每一条连接两个城市的快速道路长度都标在地图上。当其他城市有紧急求助电话给你的时候,你的任务是带领你的救援队尽快赶往事发地,同时,一路上召集尽可能多的救援队。输入格式:输入第一行给出4个正整数N、M、S、D,其中N(2≤N≤500)是城市的个数,顺便假设城市的编号为0 ~ (N−1);M是快速道路的条数;S是出发地的城市编号;D是目的地的城市编号。第二行给出N个正整数,
2022-04-10 16:48:48
845
原创 L2-023 图着色问题 (25 分c++代码)
图着色问题是一个著名的NP完全问题。给定无向图G=(V,E),问可否用K种颜色为V中的每一个顶点分配一种颜色,使得不会有两个相邻顶点具有同一种颜色?但本题并不是要你解决这个着色问题,而是对给定的一种颜色分配,请你判断这是否是图着色问题的一个解。输入格式:输入在第一行给出3个整数V(0<V≤500)、E(≥0)和K(0<K≤V),分别是无向图的顶点数、边数、以及颜色数。顶点和颜色都从1到V编号。随后E行,每行给出一条边的两个端点的编号。在图的信息给出之后,给出了一个正整数N(≤20),是待检
2022-03-31 15:47:11
995
原创 L2-039 清点代码库 (25 分)(PTA C++代码)
上图转自新浪微博:“阿里代码库有几亿行代码,但其中有很多功能重复的代码,比如单单快排就被重写了几百遍。请设计一个程序,能够将代码库中所有功能重复的代码找出。各位大佬有啥想法,我当时就懵了,然后就挂了。。。”这里我们把问题简化一下:首先假设两个功能模块如果接受同样的输入,总是给出同样的输出,则它们就是功能重复的;其次我们把每个模块的输出都简化为一个整数(在 int 范围内)。于是我们可以设计一系列输入,检查所有功能模块的对应输出,从而查出功能重复的代码。你的任务就是设计并实现这个简化问题的解决方案。输入.
2022-03-10 00:01:03
314
原创 L2-004 这是二叉搜索树吗? (25 分) (PTA C++代码)
一棵二叉搜索树可被递归地定义为具有下列性质的二叉树:对于任一结点,其左子树中所有结点的键值小于该结点的键值;其右子树中所有结点的键值大于等于该结点的键值;其左右子树都是二叉搜索树。所谓二叉搜索树的“镜像”,即将所有结点的左右子树对换位置后所得到的树。给定一个整数键值序列,现请你编写程序,判断这是否是对一棵二叉搜索树或其镜像进行前序遍历的结果。输入格式:输入的第一行给出正整数 N(≤1000)。随后一行给出 N 个整数键值,其间以空格分隔。输出格式:如果输入序列是对一棵二叉搜索树或其镜像进
2022-02-24 20:09:48
540
原创 试题 历届真题 解谜游戏【第十届】【决赛】【B组C++】
思路分析:我们经过观察,每一次旋转只能****三个圈一起旋转, 但是3个圈的边长是不一样的, 内圈4个 为1周期,中圈8个为1周期,外圈12个为一周期。假设内圈的0号棒转动顺时针-周(即整体顺时针转动4次)再次回到0号位置,中圈则是原来的4号棒到了0号位置;外圈则是原来的8号棒到了0号位置。整体再顺时针转动一周的话,内圈的0号位置还是初始时的0号棒,中圈也还是初始的0号棒,外圈则是4号棒;内圈的每一根棒无论整体怎么转动都是跟着中圈的两根棒和外圈的三根棒的。如图:例如:...
2022-02-20 15:45:06
3402
原创 爬虫常用库笔记
这里给大家分享一下我在爬虫学习过程中整理的笔记,包含一些常用的库函数,后续会持续更新。一、Requests库的使用二.BeautifulSoup库的使用三.标签树的遍历方式遍历总结四.信息的提取与查找...
2021-12-08 18:21:09
192
原创 1009 Product of Polynomials (25 分)多项式相乘
This time, you are supposed to find A×B where A and B are two polynomials.Input Specification:Each input file contains one test case. Each case occupies 2 lines, and each line contains the information of a polynomial:K N1 aN1 N2 aN2 … NK aNKwh
2021-11-24 16:05:34
313
原创 试题 算法训练 车的放置(蓝桥杯c++)
问题描述 在一个n*n的棋盘中,每个格子中至多放置一个车,且要保证任何两个车都不能相互攻击,有多少中放法(车与车之间是没有差别的)输入格式 包含一个正整数n输出格式 一个整数,表示放置车的方法数样例输入2样例输出7数据规模和约定 n<=8 【样例解释】一个车都不放为1种,放置一个车有4种,放置2个车有2种。算法思路:这道题考察的是搜索回溯算法,我们都知道在象棋里车的攻击方式是直线行的,也就是说,只要不把他们放在同一行或者同一列就可以避免相互攻击,从题中我们可以了解
2021-11-18 15:13:38
5325
11
原创 求树的层序遍历(已知后序和中序遍历)
要求:给定后序和中序遍历序列,输出对应二叉树的层序遍历序列。输入规格:第一行给出一个正整数N (≤30),表示二叉树中的节点总数。第二行给出后序序列,第三行给出中序序列。一行中的所有数字都用空格分隔。输出规格:在一行中打印相应二叉树的层序遍历序列。一行中的所有数字必须正好用一个空格隔开,行尾不得有多余的空格。例如:样本输入:72 3 1 5 7 6 41 2 3 4 5 6 7示例输出:4 1 6 3 5 7 2#include <bits/stdc++.h>using
2021-11-09 22:56:01
459
原创 1013 Battle Over Cities (25 分)
It is vitally important to have all the cities connected by highways in a war. If a city is occupied by the enemy, all the highways from/toward that city are closed. We must know immediately if we need to repair any other highways to keep the rest of the c
2021-11-09 22:43:59
58
原创 1053 Path of Equal Weight (30 分)(PTA甲级)
Given a non-empty tree with root R, and with weight Wi assigned to each tree node Ti. The weight of a path from R to L is defined to be the sum of the weights of all the nodes along the path from R to any leaf node L.Now given any weighted tree, you are
2021-10-08 17:05:23
105
原创 1044 Shopping in Mars (25 分)(PAT (Advanced Level))
1044 Shopping in Mars (25 分)Shopping in Mars is quite a different experience. The Mars people pay by chained diamonds. Each diamond has a value (in Mars dollars M$). When making the payment, the chain can be cut at any position for only once and some of t
2021-10-07 18:12:21
91
原创 P5019 [NOIP2018 提高组] 铺设道路
题目描述春春是一名道路工程师,负责铺设一条长度为 n 的道路。铺设道路的主要工作是填平下陷的地表。整段道路可以看作是 n 块首尾相连的区域,一开始,第 i 块区域下陷的深度为 di 。春春每天可以选择一段连续区间[L,R],填充这段区间中的每块区域,让其下陷深度减少 1。在选择区间时,需要保证,区间内的每块区域在填充前下陷深度均不为0 。春春希望你能帮他设计一种方案,可以在最短的时间内将整段道路的下陷深度都变为 0 。输入格式输入文件包含两行,第一行包含一个整数 n,表示道路的长度。 第二行包含
2021-10-03 17:40:38
477
原创 7-2 日期的推算*
已知今天的日期,请你推算若干天后是什么日期。说明:假设今天的日期是 y1 年 m1 月 d1 日,过 n 天后的日期为 y2 年 m2 月 d2 日。输入格式y1/m1/d1n(n>0)输出格式y2/m2/d2注:y2 至少4位数字,m2 和 d2 至少2位数字,若位数不够,则前面补0。输入样例2018/2/1422结尾无空行输出样例2018/03/08结尾无空行思路:定义枚举变量t,当t超过所要的天数就输出。#include<b
2021-10-01 17:46:11
634
原创 1037 Magic Coupon(pat甲级) (25 分)
Magic CouponThe magic shop in Mars is offering some magic coupons. Each coupon has an integer N printed on it, meaning that when you use this coupon with a product, you may get N times the value of that product back! What is more, ...
2021-09-26 15:09:33
78
原创 7-4 字符串模式匹配(pta)
给定主串s和模式串p,编写程序输出p在s中出现的首位置,若p不在s中则输出-1。字符串下标从0开始。输入格式:输入为2行,第1行主串s,第2行为模式串p。主串和模式串长度不超过100000。输出格式:输出为2行,第1行为若干整数,表示模式串p的失败函数值,每个整数后一个空格;第2行为一个整数,表示p在s中出现的首位置,若p不在s中则输出-1。输入样例:在这里给出一组输入。例如:qwerabcabhlkabcab结尾无空行输出样例:在这里给出相应的输出。例如:-1 -1 -1 0 1
2021-09-16 20:32:44
4785
原创 交通规划(csp最详细题解100分代码---最小最短路径树)
问题描述 G国国王来中国参观后,被中国的高速铁路深深的震撼,决定为自己的国家也建设一个高速铁路系统。 建设高速铁路投入非常大,为了节约建设成本,G国国王决定不新建铁路,而是将已有的铁路改造成高速铁路。现在,请你为G国国王提供一个方案,将现有的一部分铁路改造成高速铁路,使得任何两个城市间都可以通过高速铁路到达,而且从所有城市乘坐高速铁路到首都的最短路程和原来一样长。请你告诉G国国王在这些条件下最少要改造多长的铁路。输入格式 输入的第一行包含两个整数n, m,分别表示G国城市的数量和城市间铁路的数
2021-08-26 23:08:19
1113
3
转载 spfa算法求最短路(简化版)
1、最短路径问题介绍问题解释:从图中的某个顶点出发到达另外一个顶点的所经过的边的权重和最小的一条路径,称为最短路径解决问题的算法:[迪杰斯特拉算法(Dijkstra算法)](https://blog.csdn.net/q1430186623/article/details/117400132)[弗洛伊德算法(Floyd算法)](https://blog.csdn.net/q1430186623/article/details/117400444)SPFA算法之前已经对Dijkstra算法和F
2021-08-24 22:43:31
348
原创 炉石传说(ccf/csp模拟100分)
《炉石传说:魔兽英雄传》(Hearthstone: Heroes of Warcraft,简称炉石传说)是暴雪娱乐开发的一款集换式卡牌游戏(如下图所示)。游戏在一个战斗棋盘上进行,由两名玩家轮流进行操作,本题所使用的炉石传说游戏的简化规则如下: * 玩家会控制一些角色,每个角色有自己的生命值和攻击力。当生命值小于等于 0 时,该角色死亡。角色分为英雄和随从。 * 玩家各控制一个英雄,游戏开始时,英雄的生命值为 30,攻击力为 0。当英雄死亡时,游戏结束,英雄未死亡的一方获胜。 * 玩家可在游戏过
2021-08-24 15:53:16
391
原创 火车购票(csp100分代码)
问题描述 请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配。 假设一节车厢有20排、每一排5个座位。为方便起见,我们用1到100来给所有的座位编号,第一排是1到5号,第二排是6到10号,依次类推,第20排是96到100号。 购票时,一个人可能购一张或多张票,最多不超过5张。如果这几张票可以安排在同一排编号相邻的座位,则应该安排在编号最小的相邻座位。否则应该安排在编号最小的几个空座位中(不考虑是否相邻)。 假设初始时车票全部未被购买,现在给了一些购票指令,请你处理这些指令。
2021-08-24 14:13:19
458
原创 游戏(csp100分代码)
问题描述 小明在玩一个电脑游戏,游戏在一个n×m的方格图上进行,小明控制的角色开始的时候站在第一行第一列,目标是前往第n行第m列。 方格图上有一些方格是始终安全的,有一些在一段时间是危险的,如果小明控制的角色到达一个方格的时候方格是危险的,则小明输掉了游戏,如果小明的角色到达了第n行第m列,则小明过关。第一行第一列和第n行第m列永远都是安全的。 每个单位时间,小明的角色必须向上下左右四个方向相邻的方格中的一个移动一格。 经过很多次尝试,小明掌握了方格图的安全和危险的规律:每一个方格出现危险的
2021-08-22 15:21:52
574
原创 送货(欧拉回路)(csp100分代码)
在这道题之前我们先讲一下欧拉通路和欧拉回路的概念。如果图G中的一个路径包括每个边恰好一次,则该路径称为欧拉通路(Euler path)。如果一个回路是欧拉通路,则称为欧拉回路(Euler circuit)。具有欧拉回路的图称为欧拉图(简称E图)。具有欧拉通路但不具有欧拉回路的图称为半欧拉图**。先说说欧拉回路的判断(由于本题中不用欧拉回路,所以了解即可):无向图存在欧拉回路的充要条件:一个无向图存在欧拉回路,当且仅当该图所有顶点度数都为偶数,且该图是连通图。有向图存在欧拉回路的充要条件:一个
2021-08-20 15:52:30
308
原创 画图(csp程序模拟题)
问题描述 用 ASCII 字符来画图是一件有趣的事情,并形成了一门被称为 ASCII Art 的艺术。例如,下图是用 ASCII 字符画出来的 CSPRO 字样。 ….………_… ././.||….|……/.… |.|…_.|.|).|.|).|.|.|.| |.|.).|…/|….<|.||.| ._|/||…||._\___/. 本题要求编程实现一个用 ASCII 字符来画图的程序,支持以下两种操作: Ÿ 画线:给出两个端点的坐标,画一条连接这两个端点的线段。简便起
2021-08-19 19:00:34
202
原创 本质上升子序列(蓝桥杯)
【问题描述】小蓝特别喜欢单调递增的事物。在一个字符串中,如果取出若干个字符,将这些字符按照在字符串中的顺序排列后是单调递增的,则成为这个字符串中的一个单调递增子序列。例如,在字符串 lanqiao 中,如果取出字符 n 和 q,则 nq 组成一个单调递增子序列。类似的单调递增子序列还有 lnq、i、ano 等等。小蓝发现,有些子序列虽然位置不同,但是字符序列是一样的,例如取第二个字符和最后一个字符可以取到 ao,取最后两个字符也可以取到 ao。小蓝认为他们并没有本质不同。对于一个字符串,小蓝想知道
2021-06-04 10:33:45
164
原创 调手表(蓝桥杯2018年B组真题)
题目:小明买了块高端大气上档次的电子手表,他正准备调时间呢。在 M78 星云,时间的计量单位和地球上不同,M78 星云的一个小时有 n 分钟。大家都知道,手表只有一个按钮可以把当前的数加一。在调分钟的时候,如果当前显示的数是 0 ,那么按一下按钮就会变成 1,再按一次变成 2 。如果当前的数是 n - 1,按一次后会变成 0 。作为强迫症患者,小明一定要把手表的时间调对。如果手表上的时间比当前时间多1,则要按 n - 1 次加一按钮才能调回正确时间。小明想,如果手表可以再添加一个按钮,表示把当前的
2021-05-31 18:46:03
543
1
原创 克鲁斯卡尔算法求最小生成树(简易算法版)
克鲁斯卡尔算法的思想并不难,难的是算法的实现,它的算法里用到了并查集的思想,关于并查集算法这里就不专门细说了,感兴趣的读者可以自行百度。克鲁斯卡尔算法的思想:先把所有的边的长度从小到大排好序,然后依次加到最小生成树里,加的时候如果遇到回路就跳过(最小生成数不能有回路),直到加到N-1条为止(N为顶点数,因为最小生成树的边数一定是N-1条),所构建的即为最小生成树。#include <bits/stdc++.h>using namespace std;#define inf 0x3f3f
2021-05-31 15:44:10
426
原创 普里姆算法求最小生成树(简易算法版)
普里姆算法求最小生成树与之前发的迪杰斯特拉算法求最小生成树的思想类似,都是用到一个dis数组,不过与迪杰斯特拉算法不同的是,之前迪杰斯特拉算法求最短路里dis存储的是源点到各点的最短路,每次循环找离源点最近的点,确认后加入到已知最短路的集合中,并标记。然后根据这个最近的点松弛离源点最近的点的距离,而这里对dis进行松弛的时候,只需要判断与找到的最近点相连的点的距离<初始源点到这个点的直接距离然后松弛就行,其余的跟迪杰斯特拉算法几乎一样。我们会注意到这里为什么不用像迪杰斯特拉算法一样加上之前的距离进行
2021-05-31 15:05:06
1016
原创 弗洛伊德算法求任意两点最短路(简易算法版)
弗洛伊德算法思想:矩阵D存储任意两点间的最短路径,刚开始矩阵D和邻接矩阵一样,利用弗洛伊德算法实现时,依次枚举N个中转点(N为所有顶点数),判断如果从第i个点出发到第j个点,如果:起点i到中转点k的距离+k到终点j的距离比它两的直接距离还小,那么就更新矩阵D中它两对应的值。#include <bits/stdc++.h>using namespace std;#define inf 0x3f3f3fint D[100][100],N,M,G[100][100]; //D为任意两点最短
2021-05-30 17:06:10
1013
1
原创 迪杰斯特拉算法求最短路(简易算法版)
迪杰斯特拉算法适用于单源点求最短路的情况,即求一个点到其他点最短距离。它的思想与普里姆算法求最小生成树类似。迪杰斯特拉算法思想:用一个dis数组存放各个点到源点的距离,每次循环找离源点最近的点,确认后加入到已知最短路的集合中,并标记(下次再找离源点最近的点的时候,被标记的点就直接跳过了,因为它已经在最短路里了),然后根据找到的这个最近的点进行延伸,分析与它相连的点,如果初始源点到最近点的距离+与它相连的这个点的距离<初始源点到这个点的直接距离,那么就松弛它。(松弛:意思就是更新原来dis数组里
2021-05-30 16:54:34
349
原创 机器人塔(蓝桥杯)
X星球的机器人表演拉拉队有两种服装,A和B。他们这次表演的是搭机器人塔。类似: A B BA B AA A B BB B B A BA B A B B A队内的组塔规则是:A 只能站在 AA 或 BB 的肩上。B 只能站在 AB 或 BA 的肩上。你的任务是帮助拉拉队计算一下,在给定A与B的人数时,可以组成多少种花样的塔。输入一行两个整数 M 和 N,空格分开(0<M,N<500),分别表示A、B的人数,保证人数合理性。要求输出一个整数,表示可以产生的花样种数。
2021-05-16 18:50:46
340
原创 凑平方数(蓝桥杯)
凑平方数把0~9这10个数字,分成多个组,每个组恰好是一个平方数,这是能够办到的。比如:0, 36, 5948721再比如:10985247361, 25, 63907840, 4, 289, 15376等等…注意,0可以作为独立的数字,但不能作为多位数字的开始。分组时,必须用完所有的数字,不能重复,不能遗漏。如果不计较小组内数据的先后顺序,请问有多少种不同的分组方案?注意:需要提交的是一个整数,不要填写多余内容。思路:题目要求利用0-9这几个数字,我们可以想到全排列,全排列正好可以
2021-05-14 22:35:21
489
原创 完美正方形(蓝桥杯)
问题描述如果一些边长互不相同的正方形,可以恰好拼出一个更大的正方形,则称其为完美正方形。历史上,人们花了很久才找到了若干完美正方形。比如:如下边长的 22 个正方形:2 3 4 6 7 8 12 13 14 15 16 17 18 21 22 23 24 26 27 28 50 60如图这样组合,就是一种解法。此时,紧贴上边沿的是:60 50,紧贴下边沿的是:26 28 17 21 1822 阶完美正方形一共有8种。右边的组合是另一种:2 5 9 11 16 17 19 21 22 24 2
2021-05-07 23:52:18
1500
原创 密文搜索(蓝桥杯2015届真题)
福尔摩斯从X星收到一份资料,全部是小写字母组成。他的助手提供了另一份资料:许多长度为8的密码列表。福尔摩斯发现,这些密码是被打乱后隐藏在先前那份资料中的。请你编写一个程序,从第一份资料中搜索可能隐藏密码的位置。要考虑密码的所有排列可能性。数据格式:输入第一行:一个字符串s,全部由小写字母组成,长度小于1024*1024紧接着一行是一个整数n,表示以下有n行密码,1<=n<=1000紧接着是n行字符串,都是小写字母组成,长度都为8要求输出:一个整数, 表示每行密码的所有排列在s中
2021-05-07 19:29:50
343
1
原创 包装机(天梯赛2021真题)
一种自动包装机的结构如图 1 所示。首先机器中有 N 条轨道,放置了一些物品。轨道下面有一个筐。当某条轨道的按钮被按下时,活塞向左推动,将轨道尽头的一件物品推落筐中。当 0 号按钮被按下时,机械手将抓取筐顶部的一件物品,放到流水线上。图 2 显示了顺序按下按钮 3、2、3、0、1、2、0 后包装机的状态。图1 自动包装机的结构图 2 顺序按下按钮 3、2、3、0、1、2、0 后包装机的状态一种特殊情况是,因为筐的容量是有限的,当筐已经满了,但仍然有某条轨道的按钮被按下时,系统应强制启动 0 号键,
2021-04-28 23:38:52
1199
原创 任意两点最短路径(floyd和dijstra算法+dfs搜索)
图是数据结构中很重要的一部分内容,这里我给出了在图的相关应用中最常见的几个算法实现。1.dfs搜索所有节点。2.求两点间的最短路径(dijstra算法)3.求两点间的最短路径(flyod算法)#include <iostream>#include <stdio.h>using namespace std;#define MAXVEX 100#define INFI 0x3f3f3ftypedef int VexType;typedef int EdgType;i
2021-04-22 21:16:38
830
原创 几种常见排序算法的实现(C语言实现)
这里我给大家做了4种排序算法的实现,分别是:冒泡排序、选择排序、直接插入排序、快速排序。其中冒泡和选择是用链式结构来实现的,因此我这里先定义了链表的基本结构和创建操作。#include <stdio.h>#include <stdlib.h>typedef int ElemType;typedef struct LNode //定义链表类型{ ElemType data; //数据域 struct LNode *next; //指针域 }LNode,*Li
2021-04-18 21:40:28
403
原创 完全二叉树的权值(2019蓝桥杯第七题)
【问题描述】给定一棵包含N个节点的完全二叉树,树上每个节点都有一个权值,按从上到下、从左到右的顺序依次是A1,A2,AN,如下图所示:现在小明要把相同深度的节点的权值加在一起,他想知道哪个深度的节点权值之和最大?如果有多个深度的权值和同为最大,请你输出其中最小的深度。注:根的深度是1。【输入格式】第一行包含一个整数N。第二行包含N个整数A1,A2,AN。【输出格式】输出一个整数代表答案。【样例输入】71 6 5 4 3 2 1【样例输出】2思路:用一个数组存储输入的各个节点值
2021-04-15 17:59:37
367
原创 迷宫 (蓝桥杯2019第十届第五题)
下图给出了一个迷宫的平面图,其中标记为1的为障碍,标记为0的为可以通行的地方。010000000100001001110000迷宫的入口为左上角,出口为右下角,在迷宫中,只能从一个位置走到这个它的上、下、左、右四个方向之一。对于上面的迷宫,从入口开始,可以按DRRURRDDDR的顺序通过迷宫,一共10步。其中D、U、L、R分别表示向下、向上、向左、向右走。对于下面这个更复杂的迷宫(30行50列),请找出一种通过迷宫的方式,其使用的步数最少,在步数最少的前提下,请找出字典序最小的一个作为答案。请注
2021-04-15 16:22:57
408
原创 全球变暖 蓝桥杯第九届真题
你有一张某海域NxN像素的照片,".“表示海洋、”#"表示陆地,如下所示:其中"上下左右"四个方向上连在一起的一片陆地组成一座岛屿。例如上图就有2座岛屿。由于全球变暖导致了海面上升,科学家预测未来几十年,岛屿边缘一个像素的范围会被海水淹没。具体来说如果一块陆地像素与海洋相邻(上下左右四个相邻像素中有海洋),它就会被淹没。例如上图中的海域未来会变成如下样子:请你计算:依照科学家的预测,照片中有多少岛屿会被完全淹没。【输入格式】第一行包含一个整数N。 (1 <= N <= 1000
2021-04-13 13:34:47
229
校园导游系统(c语言开发).7z
2021-04-27
公园导游系统(C语言开发).7z
2021-04-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人