自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 pat甲级1119Pre- and Post-order Traversals

我们知道前序后序转中序答案是不唯一的首先必须知道为什么不唯一中序之所以唯一是因为左右子树分布在根的左右两侧,左边的是左子树,右边的是右子树,但前后序的左右子树分布在同一侧,例如后序序列中当根节点的左侧只有一个节点时,就无法确定他是左节点还是右节点。可以借鉴中序前序转后序的步骤1 确定根,确定左子树,确定右子树。2 在左子树中递归。3 在右子树中递归。4 打印当前根。#include<iostream>#include <vector>using names

2020-10-13 09:34:52 136

原创 Pat1084Broken Keyboard

题目On a broken keyboard, some of the keys are worn out. So when you type some sentences, the characters corresponding to those keys will not appear on screen.Now given a string that you are supposed to type, and the string that you actually type out, plea

2020-10-10 19:15:20 138 1

原创 node.js响应的中文内容在浏览器显示时乱码

服务器端向客户端进行数据传输的时候,传输的内容是经过编码的,可以想象成 加密 ,客户端也就是浏览器接收到数据时需要先解密在进行显示,如果解密和加密的密码本不一致就会造成乱码。服务器端的默认都是utf8编码的,也就是用utf8进行的加密;而客户端的默认解密方法不是utf8,利用gbk解析utf8自然出错了。解决办法:设置响应头信息告诉浏览器编码方式res.writeHead(200, { 'content-type': 'text/plain;charset=utf8' });

2020-09-26 11:47:01 294

原创 csp认证URL映射

题目字数少,就会给你正许多的陷阱,晕~~题目本身比较简单,就不分析思路了,说说它的易错点输入的url地址需要检测合法性数字比较看作字符串进行比较,转换为数字进行比较会超出范围结尾的‘/’需要算作匹配的一部分,如: abc/ 和 abc/11/不匹配 因为地址最后多了‘/'这个最坑必须完全匹配,如:/// 和/12/不是匹配的,因为地址差了一个数字AC代码#include <iostream>using namespace std;#include <string&

2020-09-09 20:48:01 544

原创 CSP认证元素选择器

这个题的css选择器我比较熟悉,居然卡在了90分,最后发现在大小写上出了问题我看网上许多代码用到了树结构,实际上不需要用到树,直接用文档前面的‘.’的个数表示层级就行题目分析:利用结构体存储每行的‘.’的个数、标签名、id名,在将结构体存入容器中单个的标签选择或id选择直接在容器中寻找多个选择器A B,遍历容器寻找B,在B的前面寻找是否有A标签(A可以是组合的)难点在B的前面寻找是否有A标签,需要注意层级必须比B的层级地对与输入和输出中的标签选择器比较时需要注意大小写输入需要用get

2020-09-08 20:13:58 151

原创 CSP认证CIDR合并

这个题已经给出了解决的步骤,按题目的三步走就可以难点:将ip地址翻译成long long长整型的整数,进行排序设前一个ip的前缀长度为len,前一个ip的前len位==后一个相邻的ip的前len位,则从ip列表中删除后一个ip前缀如果相邻的两个ip的前缀长度相等,都为len,且则两个ip的前len位相差1,则两个ip前缀可以合并为一个#include <iostream>using namespace std;#include <string>#include

2020-09-06 20:43:07 247 1

原创 CSP认证损坏的RAID5

题意理解将多个同类型的硬盘横向排列看成一整块硬盘,横向的s行看成一个条带RAID存储数据时按条带一条一条的进行存储注意输入中需要读的块数,是按条带重新划分的块数,本题难点就是通过此块数求出需要读的块实际所在的硬盘编号和块号#include <iostream>using namespace std;#include <map>#include <string>int yiHuoNum(char c) { if (c >= 'A')

2020-09-05 13:17:36 207

原创 CSP认证字符画

字符画 吐槽:这个题的题目描述是真的狗,网上看了许多100分代码的博客讲解才弄懂。 题目大意:前景色是干扰项,实际要用的是背景色题目所说的需要(mn)/(pq)个空格和n/q个换行,是每改变一个颜色打印一个空格,每打印一行打印一个换行,所以有(mn)/(pq)个空格和n/q个换行打印的是ASCII编码的十六进制表示,要用到双转义,即“\x”,比如:“\x31”在终端打印出来时1,“\x31”打印的才是\x31#include <iostream>using namespac

2020-09-03 11:00:35 200

原创 CSP认证201912-3化学方程式题解

CSP认证201912-3化学方程式题解题目见官网思路:通过’='分解方程式为左右两个表达式通过’+‘分解表达式为单个化学式处理化学式化学式处理分为五个状态,最终分理处单个的原子进行计数,括号内的内容单独计数#include <iostream>#include <map>#include <string>#include <vector>#include <algorithm>using namespace std

2020-08-31 20:34:48 233

原创 java的接口中是否可以定义静态方法

java的接口中 可以定义 静态方法网上查了许多的博客都说的是不可以,我们老师也说得是不可以。但我自己实验了一下,发现居然可以在接口中定义静态方法(static)惊奇(⊙o⊙)?难道是是我的jdk版本比较新的原因,后面的java规则发生了变动? 而且不仅java的接口中可以定义静态方法,抽象类中也可以。但是定义的静态方法在实现或者继承的子类中是不可见的。即在实现接口的类中,无法使用接口中的静态方法interface fi { static void f1() { System.out.prin

2020-06-27 19:23:38 2092 2

原创 蓝桥杯 ALGO-219 自行车停放

蓝桥杯 ALGO-219 自行车停放 题目:问题描述  有n辆自行车依次来到停车棚,除了第一辆自行车外,每辆自行车都会恰好停放在已经在停车棚里的某辆自行车的左边或右边。(e.g.停车棚里已经有3辆自行车,从左到右编号为:3,5,1。现在编号为2的第4辆自行车要停在5号自行车的左边,所以现在停车棚里的自行车编号是:3,2,5,1)。给定n辆自行车的停放情况,按顺序输出最后停车棚里的自行车编号。...

2020-02-04 17:34:24 1043 2

原创 蓝桥杯 ALGO-225 算法训练 石子游戏

蓝桥杯 ALGO-225 算法训练 石子游戏 题目:问题描述  石子游戏的规则如下:  地上有n堆石子,每次操作可选取两堆石子(石子个数分别为x和y)并将它们合并,操作的得分记为(x+1)×(y+1),对地上的石子堆进行操作直到只剩下一堆石子时停止游戏。  请问在整个游戏过程中操作的总得分的最大值是多少?输入格式  输入数据的第一行为整数n,表示地上的石子堆数;第二行至第n+1行是每堆...

2020-02-04 15:30:43 1254 1

原创 蓝桥杯 ALGO-226 最大获利

蓝桥杯 ALGO-226 最大获利 题目:问题描述  Chakra是一位年轻有为的企业家,最近他在进军餐饮行业。他在各地开拓市场,共买下了N个饭店。在初期的市场调研中,他将一天划分为M个时间段,并且知道第i个饭店在第j个时间段内,会有Aij位服务员当值和Bij位客户光临。他还分析了不同饭店不同时间段客户的需求,得到第i个饭店在第j个时间段内,平均每位客户消费Cij元。为了创设品牌形象,Chak...

2020-02-02 16:48:47 509 2

原创 动态规划求解斐波拉契数列

求解斐波拉契数列方法的改进 斐波拉契数列的求解相信大家都不陌生,最简单的方法就是简单递归,但事件复杂度为2的n次方。今天我将用动态规划的方法,将事件复杂度降到n,空间复杂度降到1 原始方法:简单递归,代码如下 #include <iostream>#include <string.h>#include <stdio.h>#include <s...

2020-02-02 15:37:28 385

原创 哈夫曼树求解哈夫曼编码(c语言实现)

哈夫曼编码(c语言实现) **利用哈夫曼树求解哈夫曼编码:此处的哈夫曼树为了便于遍历,采用顺序存储而不用普遍的链式存储,对于编码最重要的是要保证是前缀编码,即某一个字符的编码不能为另一个字符编码的前缀,否则会使译码出现歧义。由观察还可以知道,哈夫曼树的节点的度要么是0要么是2,没有度为一的节点,所以n个叶子节点的哈夫曼树总共有2*n-1个节点构造哈夫曼树的步骤:1、构造只有根节点的n个二叉树,...

2020-02-01 18:11:03 2540 2

原创 在01矩阵中找出连接的1构成的区域的最大长度

在01矩阵中找出连接的1构成的区域的最大长度 题目:给定一个只有0 和 1 构成的矩阵,如果两个元素值相同且在水平位置或垂直位置或对角线位置上是相邻的,则称此两元素是相邻的,找出给定矩阵中相邻的1构成的最长区域 思路:题目的实质相当于找出图的所有联通分支中节点数最多的联通分支数 #include <iostream>#include <string.h>#inc...

2020-01-30 17:27:58 1682

原创 回溯法生成所有长度为n的k进制数的串

回溯法生成k进制数的串所有长度为n的k进制数的串有n的k次方种,如同上一篇所讲的,利用回溯#include <iostream>#include <string.h>#include <stdio.h>#include <stdlib.h>#define maxnum 20using namespace std;char A[max...

2020-01-29 17:17:17 288

原创 回溯法生成二进制串儿

回溯法生成二进制串儿生成一个长度为n的二进制串,由2的n次方种不同的可能。可以利用回溯法#include <iostream>#include <string.h>#include <stdio.h>#include <stdlib.h>#define maxnum 20using namespace std;char A[maxn...

2020-01-29 16:50:19 266

原创 奇数阶魔方阵(洛书)

奇数阶魔方阵(洛书)题目: 将1~n的数子排列在n*n的方阵上,要求数子不能重复,方阵各行、各列、及两条对角线的数子之和相等。此位魔方阵,又称洛书(洛书是九行九列)。若n为奇数,则为奇数阶魔方阵。解题方法:洛书的排列规律如下:⑴将1放在第一行中间一列;⑵从2开始直到n×n止各数依次按下列规则存放;每一个数存放的行比前一个数的行数减1,列数加1(例如上面的三阶魔方阵,5在4的上一行后一列);...

2020-01-28 15:51:53 1129

原创 洗扑克牌(扑克牌排序或乱数排序)

洗扑克牌(扑克牌排序或乱数排序)题目:对52张扑克牌打乱排序(不包括大小王)思路:一般的思路是随机产生152的随机数,但随机数会重复,重复的次数越多,程序的运行速度越慢。所以我们可以将152依次存入数组,在遍历数组的同时随机产生1~52的随机数,以随机数作为数组下标,和当前的数交换数子除以13,由商判断花色,由余判断扑克牌数子在这里插入代码片...

2020-01-27 15:57:40 416

原创 快速排序

快速排序快速排序就是在待排序的一组数中找一个基准(一般是最左边的数),将小于基准的数移到左边,大于基准的数移到右边,最后将基准插在中间#include <iostream>#include <string.h>#include <stdio.h>#include <ctime>#define MAX 100using namespace...

2020-01-21 15:29:27 58

原创 求最大公因数、最小公倍数、以及数的因式分解

求最大公因数、最小公倍数、以及数的因式分解利用辗转相除法求最大公因数,而又由最大公因数×最小公倍数 = 两数的乘积,所以实际上求最大公因数和最小公倍数是同一件事**而数的因式分解:用小于所求数的数作除数,去除以所求数**求最大公因数和最小公倍数#include <iostream>#include <string.h>#include <stdio.h&...

2020-01-20 15:05:50 441

原创 筛选法求质数

筛选法求质数(求小于等于N的所有素数)一般的思路:对2~N的每一个数循环判断是否是素数,时间复杂度为N的3/2次方算法思路: (筛选法)依次筛去2~N中小于等于根号N的数的倍数#include <iostream>#include <string.h>#include <stdio.h>#include <ctime>#define N...

2020-01-19 15:05:12 782

原创 背包问题(动态规划)

背包问题(动态规划)假设有一个背包负重最多可达8公斤,求出使背包所装的物品价值之和最高的组合。假设所装物品为水果,水果信息如下,分别是水果的编号、名称、重量、价格:背包问题是一个最优化的问题,计算机的最优化问题都可以用动态规划,从空集合开始,每增加一个元素就先求出该阶段的最优解,知道所所有的元素加入集合什么是动态规划呢?就是将问题分解为许多复杂度更小的子问题,而复杂度大的问题又可以利用子问题...

2020-01-17 16:35:44 311

原创 八皇后问题

八皇后问题题目:在 8×8 的国际象棋棋盘上放置八个皇后,保证任何一个皇后都无法直接吃掉其他的皇后的情况下,即任意两个皇后都不能处于同一条横行、纵行或斜线上。一共有多少中摆放皇后的方法?可以利用回溯+递归:有些类似于图的深度搜索,先找到一种方法,再在此方法上回溯,...

2020-01-16 17:02:26 222

原创 汉诺塔(河内之塔)

汉诺塔(河内之塔)有A、B、C三个柱子,将A柱子的n个盘子移动到C柱子上,题目大概意思就这样,大家应该都知道核心思想:将n个盘子分成2份,上面的n-1个和最下面的1个,将n-1个盘子移动到B盘,将最下面的盒子移动到C盘,最后将n-1个盘子移动到C盘。不断递归重复有:F(n) = F(n-1)×2 +1百度百科有另外一种解释,可以相互对照着看:当盘子的个数为n时,移动的次数应等于2^n –...

2020-01-15 14:36:42 219

原创 算术表达式转化为二叉运算树

算术表达式转化为二叉运算树二叉运算树的实质是不仅记录了表达式而且记录了表达式的运算顺序,运算时直接中序遍历就行了核心思路:二元表达式由三部分构成: 数 + 运算符 + 数,(数也可以是表达式)在一个表达式中是否能计算其中的单个二元表达式,只取决于此运算符与其前后运算符的优先级,如:3+25,不能计算3+2,因为优先级高于+,应该先计算2*5,在计算+号#include <iostrea...

2020-01-13 15:13:13 2122 1

原创 算术表达式求其后缀表达式

含小括号的算术表达式求其后缀表达式注意:算数表达式的操作数只能是一位数分类时要考虑 栈顶和表达式此时的值两方面#include <iostream>#include <string.h>#include <stdio.h>#define maxnum 50using namespace std;//算术表达式求后缀表达式//分类时要考虑 栈顶和...

2020-01-11 18:04:35 304

原创 字符串的最长重复子串

求一行字符串的最长重复子串(c语言实现)#include #include <string.h>#include <stdio.h>#define maxnum 50using namespace std;//求一行字符串的最长重复字符串int start,maxlength = 0;void found(char *c){int i=0,j,Count...

2020-01-10 15:59:04 1178 1

原创 ## 蓝桥杯-Basic19-完美的代价

问题描述  回文串,是一种特殊的字符串,它从左往右读和从右往左读是一样的。小龙龙认为回文串才是完美的。现在给你一个串,它不一定是回文的,请你计算最少的交换次数使得该串变成一个完美的回文串。  交换的定义是:交换两个相邻的字符  例如mamad  第一次交换 ad : mamda  第二次交换 md : madma  第三次交换 ma : madam (回文!完美!)输入格式  ...

2019-10-25 16:14:50 111

空空如也

空空如也

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

TA关注的人

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