- 博客(28)
- 资源 (8)
- 收藏
- 关注
原创 青出于蓝胜于蓝 (dfs序 + BIT)
传送门思路: 首先一眼dfs序,转化成序列问题来解决这是没有问题的 但是我在如何求徒弟中武功比他高的时候纠结好久。。。其实是我在dfs序中编的号和他给的武功等级让我很混乱了/// 这里就运用了树状数组求逆序对的那种思想,我从武功最高的人开始(等级为1的)先看他徒弟的整个区间内是否为0,为0就代表徒弟武功都没他高,然后在把他对应的编号+1(因为我们是按照武功...
2018-03-30 21:51:53 309
原创 计蒜客 封印之门(思维+Floyd)
传送门思路: 个人感觉是很巧妙的一题啊,总觉得很熟悉但就是差点意思... 首先分析一下bfs是没戏了,每个字母最多26中变换方法(可以自己变成自己),最长1000,26^1000 ,hhh 感觉这题加深了对Floyd的理解吧,由于是小写字母也就是最多有26个城市,我们可以先不去考虑整个字符串,只看把某个字符变为要求的字符需要几步,然后在遍历整个串求出总共需要的步数即可.我们把每一...
2018-03-30 21:41:53 371
原创 计蒜客 蒜头君的数轴 (gcd前缀和)
传送门思路: 首先考虑到要满足除了一对点的距离,其余的相邻两点间的距离要相等,那么最后这个距离r一定要是原本相邻点距离的公约数,且一定是最大公约数才最优. n个点n-1个距离,每次去掉一个, 那么如何求每次去掉一个剩下n-2个距离的gcd呢?由于gcd的非递增性质,也就是 a,b,c三个数的gcd = __gcd(__gcd(a,b),c).我们可以正向维护一个lgcd前缀,逆向维护一个...
2018-03-30 21:31:24 483
原创 计蒜客 合并数字 (思维 + 栈)
传送门思路: 大力vector搞T了一个点。。。。 这个题其实应该注意到是最左面相邻的绝对值相差为1的。那么这里可以用个栈,显然栈里存的都是不满足相邻为差的,对于新来的一个值,由于要满足最左面,栈里又是都不满足的,所以肯定是和栈顶比较是否满足条件了,满足就保留小的继续和栈顶判断,一直到不满足为止。#include <bits/stdc++.h>using name...
2018-03-30 21:24:37 340 1
原创 计蒜客 蓝桥模拟赛 连连看 (dfs)
传送门答案:89思路: 这个直接暴搜就好了,图这么小》#include <bits/stdc++.h>using namespace std;int a[6][6] = { {0,0,0,0,0,0}, {0,1,4,2,5,0}, {0,2,1,2,1,0}, {0,3,1,3,2,0}, {0,2,5,3,4,0}, {0,0,0,0,0,0}};int...
2018-03-30 21:20:13 382
原创 计蒜客 藏宝图 (bfs + 状压)
传送门思路:典型的bfs + 状压啊,一个入口出口,还要拿到地图中多个东西,而且同一个点重复走的话不好标记,这时候就标记状态啊/。。md,退役垃圾狗。。。答案 :48 PS: 这里走回出口没必要在跑一遍bfs,只需要走到出口时判断一下是否所有箱子都拿到了即可。#include <bits/stdc++.h>using namespace std;int a[15][1...
2018-03-30 21:18:23 715 1
原创 1143. Lowest Common Ancestor (30) 思维 + O(n)建立BST树
传送门思路: 果然是个很水的题,当时把自己考崩了,预感到凉了结果就真的凉了...
2018-03-28 22:45:57 211
原创 2016蓝桥杯省赛C/C++B组7题剪邮票 for循环暴力+bfs判断联通
剪邮票如【图1.jpg】, 有12张连在一起的12生肖的邮票。现在你要从中剪下5张来,要求必须是连着的。(仅仅连接一个角不算相连)比如,【图2.jpg】,【图3.jpg】中,粉红色所示部分就是合格的剪取。请你计算,一共有多少种不同的剪取方法。思路: 没错,一开始我傻到写了个暴搜,天真的以为每个重复了五次,除以5即可...mmp,后来才想起来.... 因为每个位置每次所走的方向不一样也会...
2018-03-28 22:34:25 662
转载 Bootstrap 按钮
Bootstrap 按钮摘要:这篇笔记主要是关于bootstrap提供的定义按钮的不同样式 。1.按钮样式总结以下样式可以用在<a>、<button>、<input>元素上。因为:<a role="button" href="#">、<input type="button">、<input ty
2018-03-27 22:34:59 409
原创 PAT 1030. Travel Plan (30) (思维)
传送门题意: 给你n个数段,让你把他们组成一个做小的数,不输出前导0.思路: 大体一看这不就是sort嘛,我们发现 32,321,3214 即有相同前缀的他们之间的顺序会直接影响结果,即谁在前谁在后影响了结果,所以我们排序时重载: str1 + str2 < str2 + str1 ,即确定他们的前后关系来使字典序最小. 注意全0输出0#include<bits/st...
2018-03-16 22:24:38 232
原创 PAT 1018. Public Bike Management (30) (最短路+DFS)
传送门题意: 从0号点到给定的有问题的点en,要保证每个点自行车数量为Cmax的一半,一个点的自行车数量可以被这条路径上前几个点多的自行车来补. 问你从0到问题点en的最短路径,如果最短路径相同,输出需要从0点携带的自行车数量最小的路径,如果还相同输出该路径上需要带回去最少的路径。(需要将路径上经过的所有点的自行车数量都变为完美的)思路: 如果单纯的路径最短,或者带出来的自行车数量最小...
2018-03-16 22:17:28 260
原创 PAT 1139. First Contact (30) 模拟
传送门题意:给n个人,m对朋友关系(有负号的代表女孩)。k组询问,每组询问给出一对关系(a,b)表示a追求b,追求方式:a在认识的人中找一个和a自己同性的c,c在认识的人中找到一个和b同性并且认识b的d。简单来说就是a认识c,c认识d,d认识b,并且a和c同性,d和b同性思路:很水的一个题目只是模拟即可.我们只需要分别存储下a、b的同性朋友,顺便用map标记一下异性之间是否为朋友,然后暴力找就行了...
2018-03-16 16:54:03 545
原创 PAT 1135. Is It A Red-Black Tree (30) 先序遍历二叉排序树建树+DFS验证是否为red-black
传送门、题意: 给你一个树的先序遍历,让你判断是否为red-black tree. 另外告诉你是一个二叉查找树(BST)。思路: 先说一下什么是红黑树:红黑树(Red Black Tree) 是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,红黑树和AVL树类似,都是在进行插入和删除操作时通过特定操作保持二叉查找树的平衡,从而获得较高的查找性能. 红黑树是一种平...
2018-03-16 16:48:52 321
原创 1127. ZigZagging on a Tree (30) 后序中序建树 + 反向输出层次遍历
传送门题意:给出一个树的中序和后序遍历结果,求它的Z字型层序遍历,也就是偶数层从右往左,奇数层从左往右遍历~思路:这是我那次pat考试的题目当时做出来了有点忘记了今天在回顾一下吧.具体做法见这里#include<bits/stdc++.h>using namespace std;const int maxn = 35;int in[maxn],post[maxn],n;str...
2018-03-16 16:35:32 314 1
原创 1111. Online Map (30) 最短路 + 记录路径(回溯)
传送门题意:给了图,以及s和t,让你求s到t花费的最短路程、最短时间,以及输出对应的路径。 对于最短路程,如果路程一样,输出时间最少的。 对于最短时间,如果时间一样,输出节点数最少的。 如果最短路程和最短时间路径一样,合并输出一次即可。思路:直接一次spfa即可,在过程中同时记录最短路和最短时间,同时记录最短路所需要的时间,以及最短时间所经过的节点数.一开始理解错题意了,当最短...
2018-03-16 16:30:11 332
原创 PAT 1099 Build A Binary Search Tree (30) BST
传送门题意: 让你建一颗BST树并输出其层次遍历序列.思路: 很简单的一个题目,首先要知道BST的中序遍历就一定是有序递增的序列.那么我们根据这个特性将给定的序列排序,然后按照根据所给的节点信息按照中序遍历的顺序来建树,最后在输出层次遍历序列即可.#include<bits/stdc++.h>using namespace std;const int maxn = ...
2018-03-14 21:52:37 211
原创 PAT 1123. Is It a Complete AVL Tree (30) (AVL的插入旋转以及完全二叉树的判断)
传送门题意: 给你n个点的序列,让你建一个平衡二叉树,并判断这个平衡二叉树是否是完全二叉树,并输出其层次遍历.思路: AVL树的插入旋转见: 点击 完全二叉树的判断:继续点击此题不过是二者的结合罢了.#include<bits/stdc++.h>using namespace std;struct node{ int val; node *l;...
2018-03-13 22:15:09 291
原创 PAT 1064 Complete Binary Search Tree (30) (二叉排序树的性质)
传送门题意: 给你一个序列,要你建一个完全二叉排序树,并输出他的层次遍历序列.思路: 这个题目我觉得是一个特别好的题目.首先考虑到二叉排序树的性质,二叉排序树的中序遍历得到的一定是一个递增的有序序列,又因为中序遍历总是先左孩子然后自己,再右孩子所以这就保证通过中序遍历建立的二叉排序树一定是完全二叉树.那么我们可以初始时先将序列排序变为有序的,然后利用进行中序遍历先左孩子再自己再右孩子,...
2018-03-13 22:11:19 247
原创 pat 1066 Root of AVL Tree (25)
传送门典型的AVL的插入旋转问题见博客主要注意四种方式下 中间节点的左右孩子到底应该怎么变换.#include<bits/stdc++.h>using namespace std;const int maxn = 25;struct node{ node * l; node * r; int value; node() { ...
2018-03-13 20:25:18 1023 2
原创 有关二叉排序树(BST树)和AVL树的删除操作原理及代码
平衡旋转可见我这个博客我们先来说说BST树的删除操作吧,因为AVL树的本质也是一个BST树所以AVL树的删除只是在BST删除的基础上增加了平衡因子的计算以及平衡性的调整.二叉查找树的删除: 假设现在要删除节点值为val的,那么可能有一下三种情况:(1) val所在的节点为叶子节点,那么直接删除。2)val所在的节点仅有一个孩子(即要么左孩子不为空要么右孩子不为空).那么该节点被他的孩子结点替换即可...
2018-03-13 20:20:44 529
转载 AVL树平衡旋转详解
感谢大佬!感谢大佬!概述 AVL树又叫做平衡二叉树。前言部分我也有说到,AVL树的前提是二叉排序树(BST或叫做二叉查找树)。由于在生成BST树的过程中可能会出现线型树结构,比如插入的顺序是:1, 2, 3, 4, 5, 6, 7..., n。在BST树中,比较理想的状况是每个子树的左子树和右子树的高度相等,此时搜索的时间复杂度是log(N)。可是,一旦这棵树演化成了线型树的时候,这个理想的情况...
2018-03-13 17:56:34 5167 5
原创 蓝桥 A Careful Approach 枚举+贪心+二分
传送门思路:一看到这个题目应该首先想到二分吧,最小问题最大化,最大问题最小化我们就考虑是否具有单调性是否能二分.想完二分之后我们需要考虑如何check, 仅仅是简单的排序 check是不可行的,因为我们不太确定能够按哪个端点来排序一定是正确的.进而观察到题目中说n <= 8。那么我们是否可以暴力枚举出每个飞机降落的顺序,然后在按照贪心的思想,对当前二分的答案,让每个飞机在能降落的情况下尽可能...
2018-03-10 16:36:48 1015 4
原创 历届试题 青蛙跳杯子
传送门思路:观察到数据范围为15,而且青蛙又有三种动作,进而想到这是一个bfs.由于 ‘*’空杯子是唯一的,所以我们每次就从‘*’来考虑青蛙的动作是否可行(即从空杯子来跳到青蛙那里),那么最多只有六种情况。队列中最多有2^15 * 6 个串,复杂度是可以满足的.注意所有字符串只进队一次,所以需要对字符串去重,这个过程用set 或map 记录一下即可。#include<bits/stdc++....
2018-03-10 16:35:45 673
原创 codevs 1041 Car的旅行路线
传送门思路:这个题目预处理起来比较麻烦,由于题目中说了一个城市有四个机场,但是指给定三个,所以需要我们自己去求第四个点,这个过程就需要枚举哪一个点为直角顶点然后再求第四个。求出第四个点后在预处理出任意两个机场之间的花费(注意区分同一个城市和不同城市),然后再跑dij即可. 求第四个点只需枚举一下哪个点所对应的边为斜边在通过斜率计算即可#include<bits/stdc++.h>#...
2018-03-10 16:34:01 272
原创 历届真题 包子凑数 完全背包
传送门思路:首先考虑什么情况下是INF,即当所有的包子Ai,都不互质时那么就是INF,否则一定会凑到一定程度时后面的包子全都能凑出。在考虑题目中说所有的包子有无限笼,可以考虑到本题是一个完全背包,每个Ai为物品的体积。观察数据发现N为100,Ai最多为100,那么背包的容量设置为10000大一些即可了,如果不放心可以100000左右,然后统计所有凑不出的即可.#include<bits/st...
2018-03-06 20:42:00 3486 4
原创 历届真题 k倍区间 (前缀和优化计数)
传送门思路: 最简单的方法,先维护一个前缀和,然后O(n^2)枚举两个起点求出区间和判断是否%k == 0 统计个数.N <= 100000,这种方法想的满分是不可能的,但是比赛中不会做骗分也是可取的. 我们来想一下假设区间此时为[i,j],那么区间和可表示为 sum[j] - sum[i-1],所求为 (sum[j] - sum[i-1])%k == 0. 我们可以得到 当sum[j] %...
2018-03-06 20:40:58 423
原创 历届真题 大臣的旅费 树的直径
传送门思路:首先需要明确花费最多其实必定是两点距离最长的(可以化为等差数列),又注意到题目中明确说明此图一定有n-1条边,那么就是说该图其实就是一棵树.在一棵树上找距离最长的两点,这就是树的直径,所以这题只要会求树的直径即可. 树的直径的定义: 即在树中找出两个结点,使得这两个结点间的距离最长,这个最长距离称为直径现有结论(证明网上自行搜索),从任意一点u出发搜到的最远的点一定是s、t中的一点,然...
2018-03-06 20:39:41 336
原创 pat 1110 Complete Binary Tree (25) 判断是否为完全二叉树
传送门满二叉树一定是完全二叉树,完全二叉树不一定为满二叉树.所谓完全二叉树就是除最后一层和次最后一层可以存在叶子节点其余的必须为满二叉树,且结点要靠左,即左子树优先.判断是否为完全二叉树 即可以直接对所给定的节点之间的关系进行层次遍历,遍历过程中记录结点个数,当找到一个没有孩子结点的结点时判断是否遍历了N个结点即可.、#include<bits/stdc++.h>using nam...
2018-03-05 22:17:59 389
中国科学院大学深度学习课程实验作业——电影评论情感分类(代码+实验报告)
2021-03-17
保研/考研准备资料大礼包(经验汇总+个人陈述+个人简历+联系老师+面试+自我介绍+申请表+提交材料+推荐信)
2021-01-21
中国科学院大学深度学习课程实验作业——猫狗分类(代码+实验报告)
2021-01-14
中国科学院大学深度学习课程实验作业——电影评论情感分类(代码+实验报告)
2021-01-14
中国科学院大学深度学习课程实验作业——手写数字识别(代码+实验报告)
2021-01-14
中国科学院大学深度学习课程实验作业——自动写诗(代码+实验报告)
2021-01-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人