自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(126)
  • 收藏
  • 关注

原创 PAT1117 Eddington Number (25分)

英国天文学家爱丁顿很喜欢骑车。据说他为了炫耀自己的骑车功力,还定义了一个“爱丁顿数” E ,即满足有 E 天骑车超过 E 英里的最大整数 E。据说爱丁顿自己的 E 等于 87。现给定某人 N 天的骑车距离,请你算出对应的爱丁顿数 E(≤N)。输入格式输入第一行给出一个正整数 N ,即连续骑车的天数;第二行给出 N 个非负整数,代表每天的骑车距离。输出格式在一行中给出 N 天的爱丁顿数。数据范围1≤N≤105,所给非负整数均不超过 109。输入样例:106 7 6

2020-09-01 22:19:01 145

原创 PAT1128 N Queens Puzzle N皇后问题(模拟)

传送门N 皇后问题是指将 N 个皇后放置在 N×N 棋盘上,使得皇后不能相互攻击到,即任意两个皇后都不能处于同一行、同一列或同一斜线上。在本题中,你无需解决这一难题。你需要做的是判断我们给出的棋子摆放是否是一种合理的摆放方案,即是否能够满足皇后之间不能相互攻击到。为了简化棋盘的表示,让我们假设在同一列中不会放置两个皇后。这样我们就可以用一个整数序列 Q1,Q2,…,QN 来表示一种棋盘摆放,其中 Qi 表示第 i 列的皇后所在的行号。例如,下方左图的棋盘摆放可以用 (4, 6, 8.

2020-08-31 21:32:19 552

原创 PAT 20春 7-2 The Judger (25分)

A game of numbers has the following rules: at the beginning, two distinct positive integers are given by the judge. Then each player in turn must give a number to the judge. The number must be the difference of two numbers that are previously given, and mu

2020-08-26 23:17:04 213

原创 PAT 20春 7-4 Replacement Selection (30分)

When the input is much too large to fit into memory, we have to doexternal sortinginstead of internal sorting. One of the key steps in external sorting is to generate sets of sorted records (also calledruns) with limited internal memory. The simplest me...

2020-08-26 23:03:59 564 1

原创 PAT 19秋 7-1 Forever (20分)

7-1Forever(20分)"Forever number" is a positive integerAwithKdigits, satisfying the following constrains:the sum of all the digits ofAism; the sum of all the digits ofA+1isn; and the greatest common divisor ofmandnis a prime number whic...

2020-07-23 20:18:59 176

原创 PAT1115 Counting Nodes in a BST 二叉搜索树最后两层结点数量

二叉搜索树 (BST) 递归定义为具有以下属性的二叉树:若它的左子树不空,则左子树上所有结点的值均小于或等于它的根结点的值 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值 它的左、右子树也分别为二叉搜索树将一系列数字按顺序插入到一个空的二叉搜索树中,然后,请你计算结果树的最低两层的结点个数。输入格式第一行包含整数N,表示插入数字序列包含的数字个数。第二行包含N个整数,表示插入数字序列。输出格式以如下格式,在一行中,输出结果树的最后两层的结点数:n1 +...

2020-07-15 15:11:13 323

原创 PAT链表题汇总 1032 1074 1097 1133

PAT 1032 Sharing在储存单词时,我们可以使用链表逐个字母进行储存。为了节约空间,如果两个单词拥有共同的后缀,那么可以让它们共享一个相同的子链表。例如,loading和being可以如下图所示储存:你需要找到共同后缀的起始位置。(对于上图,即为ii的位置)#include<bits/stdc++.h>#define rep(i,a,n) for(int i=a;i<n;i++)#define INF 0x3f3f3f3f#defi...

2020-05-23 08:50:15 214

原创 PAT1058 A+B in Hogwarts (水)

如果你是哈利波特的粉丝,你就会知道魔术世界有其自己的货币体系。正如海格对哈利解释的那样:“17个银镰刀(Sickle)可以换1个帆船(Galleon),29个克努特(Knut)可以换11个银镰刀。”你的工作是编写一个计算A+B的程序,其中A和B以Galleon.Sickle.Knut的标准形式给出(Galleon是一个范围在[0,107]的整数,Sickle是一个范围在[0,17) 的整数,Knut是一个范围在[0,29)的整数)。思路:其实就是把进制变成...

2020-05-21 11:56:08 99

原创 PAT1136 A Delayed Palindrome && 1024 Palindromic Number 回文数(字符串模拟)

两题相似度99%,回文过程其实就是翻转字符串,改下输入输出即可PAT1136 A Delayed Palindrome首先将该数字逆转,再将逆转数与该数相加,如果和还不是一个回文数,就重复这个逆转再相加的操作,直到一个回文数出现。如果一个非回文数可以变出回文数,就称这个数为延迟的回文数。给定任意一个正整数,本题要求你找到其变出的那个回文数。#include<bits/stdc++.h>#define rep(i,a,n) for(int i=a;i<n;i+..

2020-05-21 11:52:16 109

原创 PAT1023 Have Fun with Numbers趣味数字(字符串模拟)

请注意,数字123456789是一个9位数字,完全由1到9组成,没有重复。将其加倍,我们将获得246913578,它恰好是另一个9位数字,恰好由1到9组成,只是排列不同。现在,给定你一个k位的数字,请你判断将其加倍以后得到的数字是否可以由原数字的各数位重新排列得到。思路:本题可以直接用int处理,个人习惯用字符串String .首先将数字扔到一个vector容器1中,处理出加倍后的字符串扔到vector容器2中两个容器都排下序,再比对一下最...

2020-05-21 11:44:13 324

原创 PAT1009 Product of Polynomials && 1002 A+B for Polynomials 多项式乘积/加法(模拟)

给定两个多项式AA和BB,计算A×B的结果。共两行,每行包含一个多项式的信息,格式如下:KN1aN1N2aN2…NKaNK其中,K表示多项式中非零项的数量,Ni和aNi分别表示其中一个非零项的指数和系数。结果中的各项的系数均保留一位小数。思路:数据很小,指数位最多只有1000+1000. 考虑暴力出奇迹#include<bits/stdc++.h>#define rep(i,a,n) for(int i=a;i<n;i++)us...

2020-05-21 11:29:01 154

原创 PAT1112 Stucked Keyboard (字符串模拟)

在一个损坏的键盘上,某些键总是被卡住。因此,当你用该键盘输入一些句子时,与这些键相对应的字符将在屏幕上重复出现kk次。现在,给定k以及最终屏幕显示的结果字符串,请你找出所有可能坏掉的按键,并给出原始字符串。注意,有些字符可能被重复键入。每当卡住的按键被按下时,其对应的字符将固定被输出k次。例如,当k=3时,从字符串thiiis iiisss a teeeeeest,我们可以推断出i和e可能被卡住了,但是s并没有被卡住,尽管它也重复出现过。所以,原始字符串可能...

2020-05-20 11:06:23 160

原创 PAT1118 Birds in Forest (求连通块数量-并查集)

一些科学家为森林中成千上万的鸟类拍照。假设所有出现在同一张照片中的鸟都属于同一棵树。请你帮助科学家计算森林中树木的最大数量,对于任何一对鸟类,请判断它们是否在同一棵树上。思路:与1013几乎一样,在输入上做了一点改变,转化为求点的数量和连通块的数量,并询问两点是否在同一连通块。考虑并查集来解决这种求连通块问题。#include<bits/stdc++.h>#define rep(i,a,n) for(int i=a;i<n;i++)#define INF 0x3f

2020-05-17 17:39:40 253

原创 PAT 1013 Battle Over Cities (删点求连通块问题---并查集/爆搜)

在战争中,所有城市都必须通过高速公路连接起来,这一点至关重要。如果一个城市被敌人占领,则从该城市/往该城市的所有高速公路都将关闭。此时,我们必须立即判断是否需要维修其他高速公路以保持其余城市的连通性。给定城市与道路分布地图以及一个重点关注城市列表,请你判断,当列表中的某个城市被攻陷时,至少要维修多少条高速公路才能保持其余城市的连通性。例如,共有33座城市,由22条高速公路将它们连通,一条连接城市1和城市2,一条连接城市1和城市3。当城市1被敌人占领时,我们需要在城市...

2020-05-17 16:57:56 387

原创 PAT1149 Dangerous Goods Packaging 危险品集装箱 (STL)

传送门给定一张不相容物品的清单,需要你检查每一张集装箱货品清单,判断它们是否能装在同一只箱子里。思路1:对每一组询问,遍历不相容的清单,看在集合中是否同时存在#include<bits/stdc++.h>#define rep(i,a,n) for(int i=a;i<n;i++)#define INF 0x3f3f3f;#define x first#define y secondusing namespace std;const int N=1e4+233;

2020-05-12 18:18:54 182

原创 1144 The Missing Number 漏掉的数字(STL-SET)

传送给定N个整数,请你找出最小的不在给定整数列表中的正整数。思路:破水题也会超时,改用unordered_set就可#include<bits/stdc++.h>#define rep(i,a,n) for(int i=a;i<n;i++)using namespace std;int n,a,ans;unordered_set<int>s;int main(){ cin>>n; rep(i,0,n) cin>>.

2020-05-12 17:46:51 145

原创 PAT1120 Friend Numbers 找朋友(STL-SET)

如果两个整数各位数字的和是一样的,则被称为是“朋友数”,而那个公共的和就是它们的“朋友证号”。例如123和51就是朋友数,因为1+2+3=5+1=6,而6就是它们的朋友证号。给定一些整数,要求你统计一下它们中有多少个不同的朋友证号。思路:输入时用字符串加起来方便,用set可以直接去重。#include<bits/stdc++.h>#define rep(i,a,n) for(int i=a;i<n;i++)#define INF 0x3f3f3f;u...

2020-05-12 17:16:15 133

原创 PAT1063 Set Similarity 集合相似度(STL-SET)

传送门给定两个整数集合,两个集合的相似度定义为Nc/Nt×100%,其中Nc 是两个集合中都存在的不同整数的数量,Nt是两个集合中不同整数的数量。现在,请你计算给定集合的相似度。思路:Nc是两集合共有的元素数量,Nt是两集合不同的元素数量=两集合总数-Nc如何判断数是否在集合中? 利用STL中的set的count()函数#include<bits/stdc++.h>#define rep(i,a,n) for(int i=a;i<n;i++)#define IN...

2020-05-12 16:58:05 119

原创 PAT 1048 Find Coins 找硬币(模拟)

伊娃喜欢从整个宇宙中收集硬币。有一天,她去了一家宇宙购物中心购物,结账时可以使用各种硬币付款。但是,有一个特殊的付款要求:每张帐单,她只能使用恰好两个硬币来准确的支付消费金额。给定她拥有的所有硬币的面额,请你帮她确定对于给定的金额,她是否可以找到两个硬币来支付。输出一行,包含两个整数V1,V2,表示所选的两个硬币的面额,使得V1≤V2并且V1+V2=M。如果答案不唯一,则输出V1 最小的解。思路:排序,枚举每一个面额,是否存在对应的与之相加为m的另一个面额。注:同面...

2020-05-11 14:30:43 290

原创 PAT 1012Invert a Binary Tree反转二叉树(反转树,层序,中序)

传送题目给定一颗二叉树,要求输出反转后二叉树的层序遍历序列和中序遍历序列关于反转操作,是一个后序遍历交换的过程,最开始我是中序交换,怎么都不对,画了N遍图才意识过来#include<bits/stdc++.h>#define rep(i,a,n) for(int i=a;i<n;i++)#define INF 0x3f3f3f3f#define x first...

2020-05-07 17:04:16 164

原创 1099 Build A Binary Search Tree构建二叉搜索树(中序+层序)

给定二叉树的具体结构以及一系列不同的整数,只有一种方法可以将这些数填充到树中,以使结果树满足 BST 的定义。一次DFS(中序)把数值放到二叉搜索树中,再BFS(层序)输出一次即可#include<bits/stdc++.h>#define rep(i,a,n) for(int i=a;i<n;i++)#define INF 0x3f3f3f3f#define x...

2020-05-07 16:03:13 93

原创 PAT dijkstra模板

常规版,大多数情况下用这个即可#include<bits/stdc++.h>#define rep(i,a,n) for(int i=a;i<n;i++)#define INF 0x3f3f3f3fusing namespace std;const int N=2333;int n,m,k;int g[N][N];int dist[N],vis[N];in...

2020-05-05 16:54:15 145

原创 PAT1150 Travelling Salesman Problem旅行商问题(简单回路)

https://pintia.cn/problem-sets/994805342720868352/problems/1038430013544464384对于每个路径,在一行中输出Path X: TotalDist (Description)。其中X是路径编号(从11开始),TotalDist表示路径总距离(如果距离不存在,则输出NA),Description是下列中的一...

2020-05-05 16:22:08 353

原创 PAT1146 Topological Order 拓扑排序(两种思路)

https://pintia.cn/problem-sets/994805342720868352/problems/994805343043829760辣鸡如我已经忘了拓扑序是个什么东西了。特地去百度了一下::在图中从顶点A到顶点B有一条有向路径,则顶点A一定排在顶点B之前。大致意思就是必须满足前面节点都在序列中,该节点才能进序列那么就很简单了,输入时把一个节点的父节点(不知道这样称...

2020-05-05 14:47:19 163

原创 PAT 1142 Maximal Clique 最大团

传送门在一个无向图中,如果一个顶点子集满足子集内的任意两个不同顶点之间都是相连的,那么这个顶点子集就被称为一个团。如果一个团不能通过加入某个新的顶点来扩展成一个更大的团,那么该团就被称为最大团。现在,你需要判断给定顶点子集能否构成一个最大团。思路:先判断是不是个团(如果顶点子集内存在两个点没有边就不是团),再遍历子集外的点,如果存在一个点和子集内所有点都有边,那就不是最大团...

2020-05-04 19:16:09 110

原创 PAT1139 First Contact (STL)

题意:当男孩A暗恋着女孩B的时候,他通常不会直接与她联系。取而代之的是,他可能会去找另一个男孩C(他的好朋友)去拜托女孩D(她是B和C的朋友)将女孩B约出来。这实在是麻烦不是吗?女孩也会做类似的事情。在给定的友谊关系网络中,请你帮助一些男孩和女孩列出所有可能会帮助他们进行第一次联系的朋友注意: 可以是同性恋(即AB性别相同);不可以无中生友(即我就是我自己的朋友,A!=...

2020-05-04 16:30:38 156

原创 PAT 1134 Vertex Cover && PAT 1154 Vertex Coloring 顶点覆盖/涂色

如果图中的一个顶点集合能够满足图中的每一条边都至少有一个端点在该集合内,那么这个顶点集合就是图的顶点覆盖。现在给定一张图,以及若干个顶点集合,请你判断这些顶点集合是否是图的顶点覆盖。#include<bits/stdc++.h>#define rep(i,a,n) for(int i=a;i<n;i++)#define PII pair<int,int&...

2020-05-03 17:09:29 144

原创 1131 Subway Map地铁地图(邻接表+dijkstra堆优化附模板)

传送门找出⼀条路线,使得对任何给定的起点和终点,可以找出中途经停站最少的路线;如果经 停站⼀样多,则取需要换乘线路次数最少的路线PAT中的图论最恶心难的题,根据题目描述可以看出是道最短路的题,立即推dijkstra,但是本题还要求输出每条最短路的来源和线路,处理起来较为麻烦。考虑把每条线路中的所有站点都连一条带权值的双向边,这样一来可以方便求出两点之间的最短路。但是这样建...

2020-05-03 16:19:39 718

原创 1126 Eulerian Path 欧拉回路

传送如果⼀个连通图的所有结点的度都是偶数,那么它就是Eulerian,如果除了两个结点的度是 奇数其他都是偶数,那么它就是Semi-Eulerian,否则就是Non-Eulerian处理出每个节点的度后,判断一次连通性。#include<bits/stdc++.h>#define rep(i,a,n) for(int i=a;i<n;i++)#d...

2020-05-02 15:11:02 173

原创 PAT1122 Hamiltonian Cycle 哈幂顿回路

传送门判断给定路径是否为哈密顿回路。哈密顿回路是一个包含图中每个顶点的简单回路将给定序列先根据哈密顿回路性质(顶点数是否一致,是否回到起点)判断再通过遍历判断是否连通 以及确保每个点都在图中#include<bits/stdc++.h>#define rep(i,a,n) for(int i=a;i<n;i++)#define INF 0x3f3f3f...

2020-05-02 14:47:06 193

原创 1064 Complete Binary Search Tree(完全二叉搜索树的层序)

https://pintia.cn/problem-sets/994805342720868352/problems/994805407749357568根据完全二叉搜索树的特性,给出结点的值进行排序后就是该树的中序遍历#include<bits/stdc++.h>#define rep(i,a,n) for(int i=a;i<n;i++)#define sca(...

2020-04-24 20:40:44 112

原创 PAT1043 Is It a Binary Search Tree(前序中序判断二叉搜索树/镜像求后序)

传送门已知前序,并且因为二叉搜索树的特性,中序也确定,只需判断能不能建树,能就输出后序思路类似于1027,多了一个镜像树的过程版本一,照着y总写的,非常的简短风骚#include <iostream>#include<bits/stdc++.h>#define rep(i,a,n) for(int i=a;i<n;i++)#define sca(x) s...

2020-04-23 21:14:16 150

原创 PAT1021 Deepest Root 最深的根(并查集+遍历树)

传送给定N个点和N-1条边构成的无向图,若超过一个连通分量,输出连通分量的个数,否则输出能构成的树的最大深度判断连通分量个数考虑并查集因为数据很小,考虑暴力枚举每个点为根的情况的深度,取最大值。用邻接表存储#include <iostream>#include<bits/stdc++.h>#define rep(i,a,n) for(int i=a...

2020-04-18 21:18:21 162

原创 PAT1061 Dating 约会(模拟)

给两对字符串,根据规则解出约会日期前⾯两字符串中第1对相同的⼤写英⽂字⺟(⼤⼩写有 区分)是第4个字⺟D,代表星期四;第2对相同的字符是E,那是第5个英⽂字⺟,代表⼀天⾥的第14 个钟头(于是⼀天的0点到23点由数字0到9、以及⼤写字⺟A到N表示);后⾯两字符串第1对相同的英 ⽂字⺟s出现在第4个位置(从0开始计数)上,代表第4分钟。一对字符相同,是指在两个字符相同且在字...

2020-04-04 20:44:27 271

原创 PAT1071 Speech Patterns

一个模拟,要求输出一段话中出现最多次的单词。用一个map即可修改后简洁版,看上去就更有可读性#include <iostream>#include<bits/stdc++.h>#define rep(i,a,n) for(int i=a;i<n;i++)#define sca(x) scanf("%d",&x)#define sca2(x...

2020-04-04 20:40:39 95

原创 PAT1043 Is It a Binary Search Tree 二叉搜索树

给定一个整数键值序列,判断这是否是对一棵二叉搜索树或其镜像进行前序遍历的结果,是的话要输出后序序列在建二叉搜索树的同时建一颗镜像的二叉搜索树,再将原序列与两颗树的前序比对。最开始交上去只有3分。。 百思不得其解..查了近两小时bug,最后发现是“YES“打成“Yes”,心态大崩#include <iostream>#include<bits/stdc++.h...

2020-03-30 20:35:05 101

原创 PAT1004 Counting Leaves

传送门给一颗树,求出每个层次下叶节点个数跑一遍树遍历dfs#include <iostream>#include<bits/stdc++.h>#define rep(i,a,n) for(int i=a;i<n;i++)#define sca(x) scanf("%d",&x)#define sca2(x,y) scanf("%d%...

2020-03-29 19:35:16 81

原创 PAT1106 Lowest Price in Supply Chain

传送门给一颗销售供应的树。在树根初货物价格为P,从树根每往子节点走一层,价格会上涨R%。求最低价格和最低价格叶节点个数思路:最高价格其实=树的深度,进行带深度的遍历即可#include <iostream>#include<bits/stdc++.h>#define rep(i,a,n) for(int i=a;i<n;i++)#define sc...

2020-03-28 20:52:51 76

原创 1094 The Largest Generation

传送门给一颗树,求节点最多的深度和该层节点个数#include <iostream>#include<bits/stdc++.h>#define rep(i,a,n) for(int i=a;i<n;i++)#define sca(x) scanf("%d",&x)#define sca2(x,y) scanf("%d%d",&...

2020-03-28 20:42:22 78

原创 PAT1090 Highest Price in Supply Chain

传送门给一颗销售供应的树。在树根初货物价格为P,从树根每往子节点走一层,价格会上涨R%。求最高价格和最高价格叶节点个数思路:最高价格其实=树的深度,进行带深度的遍历即可与1079一样的做法#include <iostream>#include<bits/stdc++.h>#define rep(i,a,n) for(int i=a;i<n;i++...

2020-03-28 20:22:10 89

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除