- 博客(13)
- 收藏
- 关注
原创 波动数列 蓝桥杯 Java
题目描述 观察这个数列:1 3 0 2 -1 1 -2 … 这个数列中后一项总是比前一项增加2或者减少3。 栋栋对这种数列很好奇,他想知道长度为 n 和为 s 而且后一项总是比前一项增加a或者减少b的整数数列可能有多少种呢? 对于100%的数据,1< =n< =1000,-1,000,000,000< =s< =1,000,000,000,1< =a, b< =1,000,000。 测试用例:4 10 2 3,结果:2 解题思路 令p=(+a,-
2021-04-08 20:28:20
732
原创 Xshell+Winscp+Visual Studio简略使用方法
Xshell+Winscp+Visual Studio简略使用方法 1.使用步骤 连接Xshell与Winscp,登陆Winscp时将文件协议改为scp 在Winscp服务器文件夹下右键新建目录,以后文件都上传到这个文件夹中 新建记事本,复制以下程序,命名为helloworld,同时更改文件类型为.cu #include <stdio.h> const int N = 16; const int blocksize = 16; __global__ void hello(ch
2020-09-23 23:48:16
485
原创 图的m着色问题(回溯--算法第五章)
图的m着色问题 给定无向连通图G和m种不同的颜色,用这些颜色为图G的各顶点着色,每个顶点着一种颜色,是否有一种着色法使G种每条边的2个顶点着不同颜色,这个问题是图的m可着色判定问题。若一个图最少需要m种颜色才能使图中每条边连接的2个顶点着不同颜色,则称这个数m为该图的色数。求一个图的色数的问题称为图的m可着色优化问题。 问题分析: 对连通图顶点着色,两点之间分有边和无边两种情况。若有边,则两点不能着相同的颜色。这是题目限制条件,同时也是本算法的约束条件。 m着色问题的解空间树是确定元素某种性质排列的排列树。
2020-06-16 11:56:50
1279
原创 汽车加油问题(贪心--算法第四章)
汽车加油问题 一辆汽车加满油后可行驶n公里。旅途中有若干个加油站。设计一个有效算法,指出应在哪些加油站停靠加油,使沿途加油次数最少。对于给定的n(n <= 5000)和k(k <= 1000)个加油站位置,计算输出最少加油次数与加油站编号。如果无法到达目的地,则输出”NoSolution”。 输入:第一行有2个正整数n和k,表示汽车加满油后可行驶n公里,且旅途中有k个加油站。接下来的1 行中,有k+1个整数,表示第k个加油站与第k-1个加油站之间的距离。第0个加油站表示出发地,汽车已加满油。第k
2020-06-09 00:32:26
1375
原创 Huffman编码(贪心--算法第四章)
Huffman编码 数据压缩过程称为编码,即将文件中的每个字符均转换为一个唯一的二进制位串。 编码方案通常有两种:等长和变长。如字符集C={a, b, c},等长编码{00, 01, 10},变长编码{0, 10, 11}。变长编码方案将出现频度高的字符编码设置成较短编码,将频度低的字符编码设置为较长编码,可有效节约存储空间。 前缀码是指,字符集中任一字符的编码都不是其他字符编码前缀的编码。如上例中变长编码。平均码长或文件总长最小的前缀编码称为最优前缀码。前缀码中具有典型的二叉树结构。 Huffman Tr
2020-06-08 23:30:16
295
原创 0-1背包问题(动态规划&&回溯--算法第三/五章)
第三章 动态规划篇(3) 算法举例分析 0-1背包问题 给定n个物品和一个背包。物品i的重量为wi,价值为vi,背包容量为c。选择装入背包中的物品,使得装入背包的物品的价值最大。每种物品i只有两种选择,装入或者不装入,既不能装入多次,也不能只装入一部分。 问题分析: 0-1背包问题区别于背包问题。背包问题中物品可以装入一部分,故使用贪心算法,每次装入单位重量价值最高的即可。0-1背包问题面对一个物品,有装与不装2个选择。其特性是,无论当前选择装,或者当前选择不装,都不能确定以后是否会有更优的取物方式。 也就
2020-06-02 11:00:11
1138
原创 合并排序(分治--验证性--算法第二章)
算法举例分析(分治,验证性) 主要解决“原来这种思想是分治思想”的问题 合并排序 将n个元素分成2个大小相同的子集合,分别对子集合进行排序,最终将排好序的子集合合并为有序集合,n=1时中止。时间复杂度O(nlogn) 满足: 将n个元素不断划分,元素总数仍然是n 可分解为若干元素个数小于n的合并排序的独立子问题 合并时每个子问题的结果可以合并为原问题的解(子问题已有的相对有序位置是不会改变的) 该方法没有使用分治法的直接条件,所以使用先分后治的思想,先将元素简单分开,创造分治法子问题结果可合并的条件。
2020-05-25 23:26:58
231
原创 棋盘覆盖(分治--导向性--算法第二章)
算法举例分析(分治,导向性) 主要解决“不知道用什么方法,但经过分析之后得到分治解决思路”的问题 棋盘覆盖 在一个2k∗2k2^k*2^k2k∗2k个方格组成的棋盘中,恰有一个方格与其它方格不同,称该方格为一特殊方格,且称该棋盘为一特殊棋盘。需要用四种不同形态的L型骨牌,覆盖给定特殊棋盘上除特殊方格以外的所有方格,且任何2个L型骨牌不得重叠。 本问题实际即用可旋转的L型骨牌覆盖棋盘,使其仅剩下一个方格。 问题规模过于庞大,从最简单的开始想起。 正方形棋盘,根据题意,棋盘最小规模为11,此时不需要骨牌即满足题
2020-05-18 23:05:51
419
原创 二分查找(分治--验证性--算法第二章)
算法举例分析(分治,验证性) 主要解决“原来这种思想是分治思想”的问题 二分查找 又称折半查找,是针对有序数列的查找方法,时间复杂度O(logn) 满足: 查找范围小的时候易解决 查找本质为比较,最小可划分为两个元素之间的比较,子问题相同且独立 比较后的结果只有在与不在两种情况,可合并 该搜索过程在日常生活中有较多应用。具体搜索过程大致为: 对有序数列,先从中间位置开始找起。 若中间位置元素等于目标元素,则结束查找; 若中间位置元素大于目标元素,由数列有序性可知,若目标元素存在,一定在数列左半边中。故下
2020-05-18 23:03:22
293
原创 算法第二章递归
第二章 递归与递归之递归篇 文章目录第二章 递归与递归之递归篇1.分治2.递归算法举例分析(递归)1.阶乘函数2.Fibonacci数列3.Ackerman函数4.Hanoi塔5.整数划分 1.分治 将一个难以直接解决的大问题,分割成一些规模较小的K个相同问题,对这些问题分别求解。若这些问题规模仍不够小,再进行划分。如此递归地进行下去,直到问题小到容易解决为止 由此可知,递归是实现分治算法的一种技...
2020-04-16 01:05:02
548
原创 算法第一章概述
第一章 算法概述 文章目录第一章 算法概述算法1.性质2.复杂性分析2.1时间复杂性T(N,I)2.2空间复杂性S(N,I)3.算法的表示3.1基本结构3.2表示方法3.3NP完全性理论涉及算法分析辗转相除法与更相减损法 算法 对特定问题求解步骤的一种描述,是若干指令的有穷序列 程序:算法用某种程序设计语言的具体实现,可以不满足有限性,如操作系统是无限循环中执行的程序 1.性质 输入:由外部...
2020-04-13 22:14:18
354
原创 git指令入门
新建文件夹–右击git bash here 初始化一个新的git仓库(text): 创建文件夹–在文件内初始git 设置用户名 git config --global user.name ‘用户名’ 设置用户名邮箱 git config --global user.email ‘用户邮箱’ 查看 git config --list 查看当前文件 ls 查看状态(多) git status 显示当前...
2020-02-27 20:42:49
132
原创 navicat对mysql8连接的记录
用navicat连接mysql8时因为加密规则的改变会出现无法连接的情况,解决问题之后现做汇总: 1.更改mysql环境变量 我的电脑右键属性-高级系统设置-环境变量中的系统变量寻找path-将mysql的bin文件地址复制到选框开始并后加半角分号(地址通常为C:\Program Files\MySQL\MySQL Server 8.0\bin)-点击应用 2.sql语句更改 ...
2019-05-15 19:28:53
545
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅