![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
2017-2018寒假
姬小野
这个作者很懒,什么都没留下…
展开
-
解题报告_sum of consecutive prime numbers
POJ题目地址 Sum of Consecutive Prime Numbers Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 26954 Accepted: 14544 Description Some positive integers can be represent原创 2018-01-14 22:10:51 · 596 阅读 · 0 评论 -
最大子段和_三种方法
今天参加了一场洛谷网的比赛, 深受打击. 寒假过了这么多天, 一直没有认真学习算法, 以至于现在的水平比两个月前还要低. 本来就没有多少底子, 又退步了许多, 感慨万分.在洛谷上看到这么一道题 最大子段和如果数据小的话, 用暴力枚举很简单就可以做出来了, 时间按复杂度位O(n^3) 可是一道算法题怎么会这么简单呢?样例的数据是非常大的, 所以用n^3的办法一个样例都过不了...原创 2018-02-09 20:36:11 · 1382 阅读 · 0 评论 -
洛谷_烤鸡_回溯和枚举
这是洛谷试炼场上新手村的一道Boss题, 让我头疼了好久洛谷各种题解感觉是不难的, 枚举或搜索也许都可以, 但是就是没明确思路, 想要写的时候, 不知从何下手看了不少题解之后, 写了回溯和枚举两种方法. 也看出了自己的一些问题.看书做了八皇后问题之后本以为掌握了回溯, 结果还只是停留在表面和片面的层次, 其他的回溯问题因为没有见过这样的模型就只有模糊概念而无精确的过程设计.所以...原创 2018-02-10 09:10:17 · 582 阅读 · 0 评论 -
洛谷_P1962_斐波那契数列
这道题是洛谷上提高+/省选-的题目.看上去是道简单的斐波那契数列, 可是看看数据范围, 用普通的递推方式肯定超时.那么这道题该怎么做呢?标准的做法似乎是矩阵快速幂(题解提到), 然而笔者还不会, 再看题解, 发现有其他的方法. 是一个从没见过或者见过但没有印象的斐波那契数的性质f(2n) = f(n+1)^2 - f(n-1)^2; f(2n+1) = f(n+1)^2 + f...原创 2018-02-11 10:39:10 · 428 阅读 · 0 评论 -
STL_queue_队列
包含在头文件 #include 有一下常用函数 push(x) 把x压入队尾 pop() 弹出队顶元素 front() 返回队顶元素 back() 返回队尾元素 size() 返回队列的元素数 empty() 返回bool数简单代码示例#include #include using namespace std;int ma原创 2018-02-06 11:23:28 · 197 阅读 · 0 评论 -
STL函数-nth_element()
nth_element()函数是STL中的一个函数, 在algorithm头文件中, 作用是给容器的第k个元素排序.没错, 就是给一个元素排序, 可以到第k个元素是什么, 时间复杂度为O(n)函数模板template< class _RanIt> void nth_element(_RanIt _First, _RanIt _Nth, _RanIt _Last); ...原创 2018-02-11 22:14:52 · 440 阅读 · 0 评论 -
DP动态规划_01背包问题
动态规划是一种思想, 因为很违背直觉, 所以初学时理解起来很困难, 和递归一样, 都是比较奇妙的思想.01背包问题是各类背包问题(见背包九讲)中最简单的一种模型, 但是理解它也花了我很多时间.网上和各种算法书籍都有关于背包问题的讲解.刚做了两道基础的01背包问题, 遇到了几个问题, 也靠自己解决了它们两道题: 1) 洛谷1048-采药 2) 洛谷1049-装箱问题...原创 2018-02-11 23:56:49 · 297 阅读 · 0 评论 -
double精度问题_杂
无类型的文件, 直接去掉后缀即可, 如sublime的默认文件类型时间复杂度为logn无底数因为: 从理论上,无论底是什么都无关紧要,因为不同底的logn之间只存在常数倍的关系,这与n无关,不会影响复杂度的大小。因为double这种浮点型的数在计算机中是按照二进制存储的, 而一个double数是64位, 8Byte期中指数位11位, 尾数为52位(二进制) 一个介绍浮点数的连接...原创 2018-02-13 09:52:43 · 2131 阅读 · 0 评论 -
不算高精度浮点和
一次做题笔记洛谷的一道50000个浮点数之和题目第一次是这么做的第二次 看了题解之后是这么做的第三种 还是题解中别人的代码可见解决问题的方法可以有很多种能力比知识更重要一次做题笔记洛谷的一道50000个浮点数之和题目内容涉及到long double,小数转unsigned long long第一次是这么做的直接声明两个long dou...原创 2018-02-13 11:04:58 · 205 阅读 · 0 评论 -
主元素问题_奇妙的思维
主元素问题什么是主元素问题先排序比较排序后计数的方法一个简单优化计数排序的方法用STL中的nth_element函数豆瓣里一种巧妙地方法总而言之 主元素问题是一种很简单的思维启发问题 方法有很多 可是你想到了最简单的方法吗主元素问题什么是主元素问题? 已知一个数组的大小,并且其中存在一个数,出现的频率大于50%,则称其为该数组的主元素。用...原创 2018-02-13 12:00:20 · 5316 阅读 · 0 评论 -
搜索_DFS_走迷宫
今天学了搜索, 不过暂时还停留在较为初级的阶段这节介绍DFS和回溯.比较基础的DFS回溯题:走迷宫这道题不是裸的深搜题, 中间要记录走过的点, 用vector结构体储存期间出过几个小错误, 比如边界条件弄错发现这种格式比较复杂的题目中, 还是用printf()函数比较舒服 难怪Python也是这样用的注意回溯法的几个要点初始状态目标状态 状态恢复 // 尤其要...原创 2018-02-13 22:21:42 · 183 阅读 · 0 评论 -
搜索_DFS_全排列
全排列是什么? 比如1 2 3 这三个数的全排列是: 1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1用DFS生成一个序列的全排列很方便也很简单.同样, 用搜索树的概念去理解这样的一个过程时间复杂度为O(n!)一道全排列的问题基本是裸的回溯了#include <bits/stdc++.h>us...原创 2018-02-13 22:34:56 · 154 阅读 · 0 评论 -
搜索_DFS_选数和
这是一道选数题目, 我认为比较有价值不是很难, 但这道题的一种算法设计给了我一些启发, 让我进一步理解DFS. 以及搜索树!以前AC过, 开始靠自己是A不了的, 后来看了题解A掉了再次写的时候也A掉了, 但方法拙劣了很多, 很暴力的沿用全排列的方法, 有了很多重复计算.接触搜索不久, 还没有掌握什么剪枝的技巧 思路是: 枚举出所有的排列情况(期中k个数之和可能重复)...原创 2018-02-13 22:47:52 · 231 阅读 · 0 评论 -
set并集和交集&宏定义&typedef
看紫书P116, 发现这里的代码出现了几个没看过的函数, 百度了一下, 还真有, 而且用法比较奇特.紫书上使用宏(macro)很巧妙, 以前这样没用过 typedef也给我减少写代码提供了新思路主角是set相关的函数取两集合并集: set_union() 取两集合交集: set_intersection()要包含头文件algorithm函数的参数分别是 set_un原创 2018-02-04 22:11:01 · 385 阅读 · 1 评论 -
STL_map_映射
构造一个map的方法是 map m; map m; map m;在中指定一对键(key)值(value)的类型. 在map中可以通过重载了的[]来通过键访问值 即 m[“a”] = 1; m[“hello”] = 666;map常用函数如下 size() //返回map中元素数 clear() //清空map原创 2018-02-04 11:28:36 · 158 阅读 · 0 评论 -
STL_set_集合
——————2018-4-14更新——————— set中判定一个元素是否存在除了用find, 还可以用count()函数 如果存在, 返回一, 如果不存在, 返回0. (元素的数量)set的排序规则, 使用cmp结构体#include <iostream>#include <set>using namespace std;struct cmp {...原创 2018-02-03 17:40:48 · 243 阅读 · 0 评论 -
一个栈字典序排列
时隔这么久又重新学算法, 惭愧.此题是牛客网一次比赛题, 拖了很久, 不过认真思考去做, 发现其实很简单. 简单地画个图, 推导一下排序过程, 就OK了.百度了一下, 发现关于栈排序的博客大都是双栈全排的, 大概那个要更复杂些. 不多说栈和排序 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他语言262144K 64bit IO Form原创 2018-01-23 11:13:02 · 925 阅读 · 2 评论 -
双栈排序
此篇博客要讲的是双栈排序, 即已知一个不规则栈的元素, 利用另一个空栈, 进行排序.我上一篇博客讨论了只用一个栈进行排序的情况, 因为栈这种数据结构的先入后出的特性, 只用一个栈很有可能无法全部排序, 只能获得字典序最大的排列. 而使用两个栈, 则可以全部排列.如何利用两个栈排列呢?此处讨论从栈顶到栈底的升序排列(对stack2).首先从stack1中取出一个元素temp, 然后从顶开原创 2018-01-23 13:51:33 · 289 阅读 · 0 评论 -
递归绘制图形
输入数字, 绘制如下图形 依次类推这类使用递归画图的问题, 关键要找到规律. 把一张图的各个元素解构, 得出递归关系. 如改图P(n)即为 P(n-1) P(n-1) P(n-1) P(n-1) P(n-1)找到每个图形的中心点, 然后分治地解决每个元素.如此图可以左上图为中心, 计算其他图相对此图的位置, 然后依次递归或以中间那个为中心点, 同理.原创 2018-01-23 20:29:07 · 4034 阅读 · 0 评论 -
方块与收纳盒_走楼梯
题目描述 现在有一个大小n*1的收纳盒,我们手里有无数个大小为1*1和2*1的小方块,我们需要用这些方块填满收纳盒,请问我们有多少种不同的方法填满这个收纳盒 输入描述: 第一行是样例数T 第2到2+T-1行每行有一个整数n(n<=80),描述每个样例中的n。 输出描述: 对于每个样例输出对应的方法数。 示例1 输入 3 1 2 ...原创 2018-01-23 18:33:23 · 374 阅读 · 0 评论 -
对汉诺塔_递归问题的新理解
开始学C++函数是看到汉诺塔问题觉得好难理解, 当时记了记代码, 了解了些原理就跳过了.昨天时隔许久重新写汉诺塔, 错误百出. 查阅资料, 在现有的知识基础上有了更多更深的理解.这次对汉诺塔问题的过程以及对应代码有了明确认识 对递归或者说递推有了进一步认识写这篇博客除了加深相关认识和记录之外, 还有对以前的纠错和反思知乎上有很多关于汉诺塔问题的理解, 有的非常形象和详细汉诺塔递归原创 2018-01-24 13:27:43 · 576 阅读 · 0 评论 -
解题报告_POJ1979-red and black_深搜水题
POJ 1979 red and blackDescriptionThere is a rectangular room, covered with square tiles. Each tile is colored either red or black. A man is standing on a black tile. From a tile, he can move to原创 2018-01-24 15:18:56 · 206 阅读 · 0 评论 -
回溯-八皇后问题
八皇后问题是经典的回溯问题 常用的方法是递归, 也可以暴力枚举 知乎上有用一行代码写的我刚接触算法时翻过紫书, 那时了解的知识太少了, 一次翻到八皇后问题, 觉得这好复杂, 怎么做得出来! 于是心里自我暗示地告诉自己这道题很难.直到今天在计蒜客上看视频时, 提到了八皇后问题, 鉴于视频上内容较基础, 我想是不是八皇后问题其实并不难?翻书之后, 以我现在的能力还是无法独立思考出, ...原创 2018-01-24 21:48:55 · 579 阅读 · 0 评论 -
C++使用随机数
因为平时随机数用的比较少, 总是会忘记如何使用, 所以常常是要用的时候到网上去查找资料, 觉得挺麻烦, 干脆自己写一篇.随机函数rand(), 包含在cstdlib头文件中. 有的博客文章给出的代码是没有这个的, 编译不通过, 误导别人.基本的用法是这样的:#include #include using namespace std;int main(){ int原创 2018-02-01 10:43:03 · 1103 阅读 · 0 评论 -
俄罗斯方块_二进制法_模拟
俄罗斯方块是我很早之前做的模拟题, 题目在当时看来挺复杂, 现在看来也是挺简单了. 昨天看视频看到状压DP用二进制表示状态, 对这种思维方式印象深刻, 于是乎今天早上突然想起了用二进制表示曾经做过的俄罗斯方块题目.因为那道题有方块为1没方块为0. 觉得可行, 故试之.结果没有想象中的代码少, 实现起来较为复杂. 不过还在用二进制表示的话, 空间复杂度和空间复杂度大大降低, 也不负这一番折腾原创 2018-01-25 09:51:48 · 548 阅读 · 0 评论 -
N柱汉诺塔问题_转载
以下内容全为转载:汉诺塔问题及其变形算法分析写在前面:本文章属于小编从网上整合而来!引言汉诺塔算法一直是算法设计科目的最具代表性的研究问题,本文关注于如何设计多柱汉诺塔最优算法的探究。最简单的汉诺塔是三个柱子(A、B、C),因此多柱汉诺塔的柱子个数M≥3。下面从三柱汉诺塔说起,慢慢深入我们要关心的问题。三柱汉诺塔三柱汉诺塔是经典的汉诺塔问题,在算法设计中是递归算法的转载 2018-01-25 12:48:09 · 2036 阅读 · 0 评论 -
STL_排序与检索
STL中有支持排序和检索的函数如sort, 二分查找. 使用起来较为方便.sort函数添加在头文件algorithm中, 使用方法如: sort(start,end[,排序方法])int a[5] = {1,2,34,4,3};sort(a, a+5); //这是最简单的sort方法, 使用默认的排序方法升序排列sort(a, a+5, cmp); // cmp为bo原创 2018-02-03 11:58:07 · 213 阅读 · 1 评论 -
STL_vector_不定长数组
vector是STL中的一种容器, 是一种不定长的数组.包含在vector头文件中 使用方式为 vectorvec; //定义了一个vec数组 vector vec(10); //定义了元素数, 各元素都为0有 size()函数 //返回数组元素数, 即数组大小 resize()函数 //重置数组大小 push_back(argu)原创 2018-02-03 16:54:31 · 322 阅读 · 0 评论 -
并查集基础
并查集是一种很有趣的数据结构. 最清楚说明并查集的例子是亲戚问题, 今天是大年初二, 四处亲戚来拜年, 学习并查集真是应景. 并查集是我新年学的第一种数据结构. 之前接触它的时候觉得这个名字的DS很复杂, 因为不了解且很难望文生义, 不过接触了之后, 发现比较简单的. 所以, 学算法千万不能畏难, 因为各种算法都不会是简单的, 但也不会是很难的. 只要你多去做做, 自己写写, 理解了就...原创 2018-02-17 19:20:34 · 174 阅读 · 0 评论