![](https://img-blog.csdnimg.cn/20190918140037908.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
PTA、蓝桥杯、leetocde、洛谷
题解记录
GOD_Dian
小白白一枚
展开
-
PAT甲级-树专题17-1013 Battle Over Cities (25分)-并查集
#include<bits/stdc++.h>using namespace std;const int maxn = 1010,maxm = 500050;int n,m,k;int p[maxn];struct { int a,b;}e[maxm];int find(int x) { if(x!=p[x]) p[x] = find(p[x]); return p[x];}int main(){ cin >> n >> m >原创 2020-09-21 22:04:35 · 201 阅读 · 0 评论 -
PAT甲级-树专题17- 1053 Path of Equal Weight (30分)树的深度优先遍历+vector比较器greater<vector<int>>()
vector的降序排列比较器:cmp或者greater<vector>()#include<bits/stdc++.h>#include<algorithm>using namespace std;const int maxn = 110;int n,m,p,idx;int node[maxn];vector<int> tree[maxn];vector<int> res;vector<vector<int&.原创 2020-09-21 11:36:22 · 361 阅读 · 0 评论 -
PAT甲级-树专题03- 1020 Tree Traversals (25分)-用中序+先序(后序)重建二叉树
重建函数是递归的,见build()#include<bits/stdc++.h>#include<unordered_map>using namespace std;const int maxn = 40;int n,root;int postorder[maxn],inorder[maxn];queue<int> q;unordered_map<int,int> l,r,pos;//用l,r记录左右孩子节点,pos记录中序序列值的坐.原创 2020-09-20 20:44:35 · 91 阅读 · 0 评论 -
PAT甲级-树专题08-1102 Invert a Binary Tree (25分)-二叉树的存储-反转树-层次遍历-中序遍历
二叉树的的存储:对于节点i,有左孩子l[i],右孩子r[i]二叉树反转:dfs遍历,对每个点交换左右子树层次遍历用队列中序用递归#include<bits/stdc++.h>using namespace std;const int maxn = 15;int n,k;int l[maxn],r[maxn];bool fa[maxn];queue<int> q;void invert(int x) { if(l[x]==-1 && r.原创 2020-09-20 19:53:28 · 105 阅读 · 0 评论 -
PAT甲级-树专题01-1004 Counting Leaves (30分)-如何处理树的层次
#include<bits/stdc++.h>using namespace std;const int maxn = 105,maxm = 105;int n,m,cnt;int depth[maxn],maxde;vector<int> tree[maxn];void dfs(int x,int de) { if(tree[x].size()==0) { depth[de] ++; maxde = max(maxde,de); return ;原创 2020-09-20 09:20:26 · 98 阅读 · 0 评论 -
CCF计算机软件能力认证试题练习:202006-2 稀疏向量+探究数组长度上限+运行错误60分
文章目录一、原题二、探究数组最大能开多大三、数组长度上限局部变量的char数组最大能开4*518028,int最大能开到518028局部二维int数组能开到724*724全局一维int数组能开到很大很大…(2GB)全局二维int数组能开到20000*20000一、原题题目:对于一个 n 维整数向量 v ∈ Zn,其在第 index 个维度上的取值记作 vindex。这里我们约定 index 的取值从 1 开始,即 v = (v1, v2, · · · , vn)。下面介绍一种向量的稀原创 2020-08-26 10:51:55 · 832 阅读 · 3 评论 -
leetcode两数之和 梳理哈希法的应用
文章目录1. 解法一:暴力枚举O(n^2)2. 解法二:双指针O(nlogn)3. 解法三:哈希表O(n)两数之和给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]1. 解法一:暴力原创 2020-08-21 14:45:25 · 135 阅读 · 0 评论 -
栈-leetcode946. 验证栈序列
验证栈序列难度中等给定 pushed 和 popped 两个序列,每个序列中的 值都不重复,只有当它们可能是在最初空栈上进行的推入 push 和弹出 pop 操作序列的结果时,返回 true;否则,返回 false 。示例 1:输入:pushed = [1,2,3,4,5], popped = [4,5,3,2,1]输出:true解释:我们可以按以下顺序执行:push(1), push(2), push(3), push(4), pop() -> 4,push(5), pop() ..原创 2020-06-03 20:57:10 · 406 阅读 · 0 评论 -
1024 Palindromic Number (25分)
1024 Palindromic Number (25分)A number that will be the same when it is written forwards or backwards is known as a Palindromic Number. For example, 1234321 is a palindromic number. All single digit numbers are palindromic numbers.Non-palindromic numbers原创 2020-05-26 23:46:11 · 146 阅读 · 0 评论 -
1101 Quick Sort (25分)
1101 Quick Sort (25分)There is a classical process named partition in the famous quick sort algorithm. In this process we typically choose one element as the pivot. Then the elements less than the pivot are moved to its left and those larger than the pivot原创 2020-05-23 22:49:58 · 165 阅读 · 0 评论 -
1015 Reversible Primes (20分)
1015 Reversible Primes (20分)A reversible prime in any number system is a prime whose “reverse” in that number system is also a prime. For example in the decimal system 73 is a reversible prime because its reverse 37 is also a prime.Now given any two posi原创 2020-05-19 23:04:56 · 197 阅读 · 0 评论 -
LeetCode157周周赛
赛题链接:https://leetcode-cn.com/contest/weekly-contest-157赛题一:玩筹码数轴上放置一些筹码,这些筹码的位置记录存放在数组chips中。chips[i]表示在第chips[i]这个位置有一个筹码。值得注意的是,可能有多个chips[i]值相同,表示在数组同一位置上有多个筹码。现在对数轴上的任意筹码做以下两个动作无限次(任意次数,可以0次):...原创 2019-10-10 16:41:45 · 127 阅读 · 0 评论 -
LeetCode156周周赛
赛题链接:https://leetcode-cn.com/contest/weekly-contest-156赛题一:独一无二的出现次数给你一个整数数组 arr,请你帮忙统计数组中每个数的出现次数。如果每个数的出现次数都是独一无二的,就返回 true;否则返回 false。...原创 2019-10-04 21:30:40 · 153 阅读 · 0 评论 -
LeetCode155周周赛
应两个朋友之约,打了场单周赛,不出意外的话,后面还会一直打下去。其实一直都不怎么想打这种算法比赛,一来经常会自闭,二来确实两三个小时盯着屏幕挺不好受的。这次参赛的原因是,作为计算机专业的基本功不能丢,并且有段时间没敲代码了,正好练练手,当然不出意料签到都没成功。另一方面,需要开始为明年的蓝桥杯做准备了。虽然没对推免抱有太大的希望,单梦想还是要有的,对吧,万一实现了呢。回到赛题。...原创 2019-10-02 16:57:43 · 172 阅读 · 0 评论 -
Leetcode报错:[AddressSanitizer: heap-buffer-overflow on address xxxx at pc xxxxx bp xxxx]
背景:win32+devcpp 5.11 问题:下述代码在本地devcpp运行无误,leetcode报错地址越界class Solution {public: vector<int> num; vector<int>::iterator it; vector<vector<int> > minimum...原创 2019-10-02 10:52:08 · 2739 阅读 · 0 评论 -
图中点的层次
原题链接原创 2020-04-02 19:35:30 · 183 阅读 · 0 评论 -
树的重心
题面给定一颗树,树中包含n个结点(编号1~n)和n-1条无向边。请你找到树的重心,并输出将重心删除后,剩余各个连通块中点数的最大值。重心定义:重心是指树中的一个结点,如果将这个点删除后,剩余各个连通块中点数的最大值最小,那么这个节点被称为树的重心。输入格式第一行包含整数n,表示树的结点数。接下来n-1行,每行包含两个整数a和b,表示点a和点b之间存在一条边。输出格式输出一个整数m,...原创 2020-04-02 19:27:09 · 145 阅读 · 0 评论 -
*2016蓝桥杯 C/C++ B组8 四平方数之和
这道题总体来说是不难的,但是这个枚举+优化的思想没见过的话,就辉卡住,因此记录一下。题面四平方和定理,又称为拉格朗日定理:每个正整数都可以表示为至多4个正整数的平方和。如果把0包括进去,就正好可以表示为4个数的平方和。比如:5 = 0^2 + 0^2 + 1^2 + 2^ 27 = 1^2 + 1^2 + 1^2 + 2^ 2(^符号表示乘方的意思)对于一个给定的正整数N,可能...原创 2020-03-29 22:18:33 · 207 阅读 · 0 评论 -
并查集&维护各集合大小 连通块中点的数量
题面给定一个包含n个点(编号为1~n)的无向图,初始时图中没有边。现在要进行m个操作,操作共有三种:“C a b”,在点a和点b之间连一条边,a和b可能相等;“Q1 a b”,询问点a和点b是否在同一个连通块中,a和b可能相等;“Q2 a”,询问点a所在连通块中点的数量;输入格式第一行输入整数n和m。接下来m行,每行包含一个操作指令,指令为“C a b”,“Q1 a b”或“Q2...原创 2020-03-27 00:29:59 · 1050 阅读 · 0 评论 -
并查集 PAT 7-32 朋友圈 (25分)
题面7-32 朋友圈 (25分)某学校有N个学生,形成M个俱乐部。每个俱乐部里的学生有着一定相似的兴趣爱好,形成一个朋友圈。一个学生可以同时属于若干个不同的俱乐部。根据“我的朋友的朋友也是我的朋友”这个推论可以得出,如果A和B是朋友,且B和C是朋友,则A和C也是朋友。请编写程序计算最大朋友圈中有多少人。输入格式:输入的第一行包含两个正整数N(≤30000)和M(≤1000),分别代表学校...原创 2020-03-23 23:11:28 · 229 阅读 · 2 评论 -
*DFS(技巧) 2015蓝桥杯 C/C++ B组 牌型种数
题面记录一下错误思路为什么错了一开始,认为就是组合数学题…直接写的C(13,52)为什么错了呢?因为这样的思路相当于是吧52张牌都看作彼此不同了,但是要求的是牌型组合。也就是假如有4张A,分别叫A1,A2,A3,A4.在C(13,52)中是把(A1,A2)(A2,A3)看作两种不同组合牌型的,但由于不计花色,其实都是2张A的牌型。正确的思路是:把A~K看作13个桶,每个桶里有4个...原创 2020-03-20 16:08:41 · 164 阅读 · 0 评论 -
*2013蓝桥杯 C/C++ B组9 带分数 [提高]
引言有时候题目需要换一种思维,才能想到解题方法。尤其是蓝桥杯这种比赛,总是跟经典例题相关的,要尽量把思路往上面靠。题面原创 2020-03-17 21:06:13 · 113 阅读 · 0 评论 -
*记忆化搜索 2014年蓝桥杯 C/C++ B组 地宫取宝
类似题目2013年A组 振兴中华题面原创 2020-03-17 17:12:12 · 103 阅读 · 0 评论 -
模拟找规律 2015蓝桥杯 C/C++ B组 移动距离
注意事项在oj中多组数据读入,每行输出一组结果,一定要换行!!!使结果排版与之相同题面思路分单双行找“序号z”与坐标x,y的关系行号都不变(不受影响)if(z%w==0) x = z/w;else x = z/w+1;单行列号不受影响if(x%2 == 1) { if(z%w == 0) y = w; else y = z%w;}双行列号反向if(x...原创 2020-03-05 21:09:43 · 149 阅读 · 0 评论 -
*逆序对应用 2014蓝桥杯C/C++ B组 小朋友排队
题面问题描述 n 个小朋友站成一排。现在要把他们按身高从低到高的顺序排列,但是每次只能交换位置相邻的两个小朋友。 每个小朋友都有一个不高兴的程度。开始的时候,所有小朋友的不高兴程度都是0。如果某个小朋友第一次被要求交换,则他的不高兴程度增加1,如果第二次要求他交换,则他的不高兴程度增加2(即不高兴程度为3),依次类推。当要求某个小朋友第k次交换时,他的不高兴程度增加k。请问,要让所...原创 2020-03-05 18:00:47 · 211 阅读 · 0 评论 -
智力题 2014蓝桥杯 C/C++ B组 蚂蚁感冒
标题原创 2020-03-02 19:43:07 · 328 阅读 · 1 评论 -
2014蓝桥杯 C/C++ B组 六角填数
题面把1~12这12个数不重复的填入下列圈圈,使得各行之和均相同。1,3,8已经填好。思路暴力搜索出奇迹,dfs搜索这道题的本意是由“全排列”出发,把12个圈从上至下从左至右标号。做全排列,通过“各行之和相同”的条件找到合适的排列。代码#include<iostream>#include<algorithm>using namespace std;...原创 2020-02-29 23:30:17 · 275 阅读 · 0 评论 -
PTA 7-52 集合相似度 (三种解法对比)
题面输入样例33 99 87 1014 87 101 5 877 99 101 18 5 135 18 9921 21 3输出样例50.00%33.33%解法一(最大随机数据tle)容易想到,直接合并两个setset合并的时间复杂度有点大:set1.insert(set2.begin(),seet2.end());#include<iostream...原创 2020-02-28 17:49:53 · 1915 阅读 · 0 评论 -
string表示的数字不能直接比较 PAT 7-27 宿舍谁最高?
题面输入样例7000000 Tom 175 120000001 Jack 180 130000001 Hale 160 140000000 Marry 160 120000000 Jerry 165 110000003 ETAF 183 145000001 Mickey 170 115输出样例000000 Tom 175 120000001 Jack 180 13000...原创 2020-02-27 17:57:41 · 329 阅读 · 0 评论 -
斐波那契变形 2013蓝桥杯C/C++ B组3 第39级台阶
题面现有39级台阶一次只能迈出1、2步,并要求总步数为偶数求一共有多少种走法dfs#include<bits/stdc++.h>using namespace std;const int maxn = 39;int deta[2]={1,2};int num=0;void dfs (int floor,int step){ if(floor == maxn )...原创 2020-02-26 22:02:58 · 164 阅读 · 0 评论 -
大水题 2013蓝桥杯 C/C++ B组10 连号区间数
引言1.从这道题看出来,蓝桥杯之前被人看不起是由原因的(现在也没几个看得上…逃:)2.拿到题目看了下数据规模,觉得会TLE,一直在想怎么剪枝/优化没想出来(我太菜了…)3.看官方的视频解答,居然跟我的是一样的。能过是因为测评数据没有给到最大规模。4. 今年蓝桥杯入榜了,个人估计难度会提高不少,一个是教材上的典型算法(贪心,dp,搜索,排序),另一个是经典问题的变形考查(背包,n皇后,最...原创 2020-02-26 21:35:44 · 238 阅读 · 0 评论 -
找规律 2013蓝桥杯C/C++ B组8 翻硬币
题目:翻硬币题目描述小明正在玩一个“翻硬币”的游戏。桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零)。比如,可能情形是:** oo***oooo如果同时翻转左边的两个硬币,则变为:oooo***oooo现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两个硬币,那么对特定的局面,最少要翻动多少次呢?我们约定...原创 2020-02-25 23:07:02 · 251 阅读 · 0 评论 -
大水题 2013蓝桥杯C/C++ B组7 错误票据
代码#include<iostream>using namespace std;int vis[100005];int main(){ int n,minn=10000000,maxn=-1; int m,t; cin >> n; int data=0; while(cin >> data){ vis[data] ++; minn...原创 2020-02-25 22:08:18 · 128 阅读 · 0 评论 -
暴力枚举 2013蓝桥杯C/C++ B组2 马虎的算式
题面有五个数字a,b,c,d,e各不重复,在1~9中取值存在以下现象:ab * cde == adb * ce求满足这种现象的算式一共有多少个?注意:满足乘法交换律的计为不同种类,即数目一定是偶数个代码#include<iostream> using namespace std;bool vis[10];int main(){ int a=1,b=2,c=3,...原创 2020-02-24 23:29:01 · 231 阅读 · 0 评论 -
日期计算 2013蓝桥杯C/C++ B组1 高斯日记
题面高斯出生于1777年4月30日他习惯用出生至今多少天记录事件。如高斯记录自己某次事件的日期为5343,实际为1791年12月15日现在已知高斯获得博士学位时数字为8113,请问实际日期时多少?格式写为xxxx-0x-0xAC代码#include <bits/stdc++.h>using namespace std;int tim[2][13]={{0,31,2...原创 2020-02-24 22:41:27 · 131 阅读 · 0 评论 -
闰年 2015蓝桥杯[星系炸弹]
题外话:蓝桥杯最喜欢的三个出题方向:1.日期计算2.时间计算3.字符串处理背景在X星系的广袤空间中漂浮着许多X星人造“炸弹”,用来作为宇宙中的路标。 每个炸弹都可以设定多少天之后爆炸。比如:阿尔法炸弹2015年1月1日放置,定时为15天,则它在2015年1月16日爆炸。 有一个贝塔炸弹,a年b月c日放置,定时为n天,请你计算它爆炸的准确日期输入输入存在多组数据,每组数据输入一行,每...原创 2020-02-24 21:27:38 · 139 阅读 · 0 评论 -
拓扑排序(PTA7-25 任务调度的合理性)
在计算机科学领域,有向图的拓扑排序是其顶点的线性排序,使得对于从顶点 uuu 到顶点 vvv 的每个有向边 uvuvuv, uuu 在排序中都在 vvv 之前。 例如,图形的顶点可以表示要执行的任务,并且边可以表示一个任务必须在另一个任务之前执行的约束; 在这个应用中,拓扑排序只是一个有效的任务顺序。 如果且仅当图形没有定向循环,即如果它是有向无环图(DAG),则拓扑排序是可能的。 任何 DAG 具有至少一个拓扑排序,并且已知这些算法用于在线性时间内构建任何 DAG 的拓扑排序。 用一种容器(比如栈,队列,原创 2020-02-23 21:44:04 · 985 阅读 · 0 评论 -
PTA 7-56题福到了 探究cin语句紧接getline()语句的一点细节问题
#include<bits/stdc++.h>using namespace std;int main(){ vector<string> my; int n;char ch; cin>>ch>>n; //(1)// getchar(); //(2) for(i...原创 2019-11-14 16:09:30 · 244 阅读 · 0 评论 -
PTA7-36 电话聊天狂人
#include<iostream>#include<algorithm>#include<string>using namespace std;int main(){ int n,o=0; cin>>n; string str[2*n]; for(int i=0;i<2*n;i++){ cin>>str[i]...原创 2020-01-28 15:58:17 · 472 阅读 · 0 评论