- 博客(29)
- 收藏
- 关注
原创 状态机+闫氏DP分析法团灭股票问题
前言第一次遇到股票问题时候无从下手,看题解写的也是含糊不清,其实他们写的题解隐含了很多重要信息导致股票问题变得很怪,今天将展示用状态机+闫氏DP分析法团灭股票问题。股票买卖 I题目描述给定一个长度为 N 的数组,数组中的第 i 个数字表示一个给定股票在第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖...
2019-12-26 18:53:29 807 1
原创 数据库期末复习--(SQL sever)
前置概念数据库一般分为:关系型数据库和非关系型数据库。数据库的内部构造是一颗B树(balanced tree)。三级模式:外模式,模式,内模式。第一范式:当关系模式R的所有属性都不能在分解为更基本的数据单位时,称R是满足第一范式的,简记为1NF。(简而言之:表中元素不可再分,比如:“课程”就不是一个原子式,”课程“可以分为课程编号,课程介绍,课程名称等等)。第二范式:如果关系模式R满足...
2019-12-21 20:35:50 1129
原创 算法竞赛进阶指南0x08 总结练习(下)
数的进制转换编写一个程序,可以实现将一个数字由一个进制转换为另一个进制。这里有62个不同数位{0-9,A-Z,a-z}。输入格式第一行输入一个整数,代表接下来的行数。接下来每一行都包含三个数字,首先是输入进制(十进制表示),然后是输出进制(十进制表示),最后是用输入进制表示的输入数字,数字之间用空格隔开。输入进制和输出进制都在2到62的范围之内。(在十进制下)A = 10,B = 1...
2019-11-22 11:42:28 397
原创 算法竞赛进阶指南0x08 总结练习(中)
防线达达学习数学竞赛的时候受尽了同仁们的鄙视,终于有一天…受尽屈辱的达达黑化成为了黑暗英雄怪兽达达。就如同中二漫画的情节一样,怪兽达达打算毁掉这个世界。数学竞赛界的精英 lqr 打算阻止怪兽达达的阴谋,于是她集合了一支由数学竞赛选手组成的超级行动队。由于队员们个个都智商超群,很快,行动队便来到了怪兽达达的黑暗城堡的下方。但是,同样强大的怪兽达达在城堡周围布置了一条“不可越过”的坚固防线。...
2019-11-21 16:45:37 300
原创 图论模板
拓扑排序#include<iostream>#include<cstring>#include<algorithm>#include<vector>using namespace std;const int N=100010;int q[N],cnt[N],tt=-1,hh;vector<int> ver[N];i...
2019-11-18 21:10:39 146
原创 算法竞赛进阶指南0x08 总结练习(上)
飞行员兄弟“飞行员兄弟”这个游戏,需要玩家顺利的打开一个拥有16个把手的冰箱。已知每个把手可以处于以下两种状态之一:打开或关闭。只有当所有把手都打开时,冰箱才会打开。把手可以表示为一个4х4的矩阵,您可以改变任何一个位置[i,j]上把手的状态。但是,这也会使得第i行和第j列上的所有把手的状态也随着改变。请你求出打开冰箱所需的切换把手的次数最小值是多少。输入格式输入一共包含四行,每行...
2019-11-17 16:32:15 250
原创 算法进阶指南0x 贪心
防晒有C头奶牛进行日光浴,第i头奶牛需要minSPF[i]到maxSPF[i]单位强度之间的阳光。每头奶牛在日光浴前必须涂防晒霜,防晒霜有L种,涂上第i种之后,身体接收到的阳光强度就会稳定为SPF[i],第i种防晒霜有cover[i]瓶。求最多可以满足多少头奶牛进行日光浴。输入格式第一行输入整数C和L。接下来的C行,按次序每行输入一头牛的minSPF和maxSPF值,即第i行输入min...
2019-11-16 16:55:37 307
原创 算法竞赛进阶指南0x6 倍增
二分与倍增倍增的定义请参考李煜东大佬的书,我们这里给出二分和倍增的模板。二分:int l=0,r=v.size()-1;while(l<r){ int mid=l+r>>1; if(v[mid]>=x) r=mid; else l=mid+1;}倍增:int r=0,p=1;while(p){ if(r+p<v.size() &&...
2019-11-13 16:40:55 423
原创 算法竞赛进阶指南 0x 排序
电影莫斯科正在举办一个大型国际会议,有n个来自不同国家的科学家参会。每个科学家都只懂得一种语言。为了方便起见,我们把世界上的所有语言用1到109之间的整数编号。在会议结束后,所有的科学家决定一起去看场电影放松一下。他们去的电影院里一共有m部电影正在上映,每部电影的语音和字幕都采用不同的语言。对于观影的科学家来说,如果能听懂电影的语音,他就会很开心;如果能看懂字幕,他就会比较开心;如果全...
2019-11-13 12:16:34 352
原创 算法竞赛进阶指南 0x二分
知识点如果一个区间,可以根据某种属性,把区间分为两段,且一段满足这个属性,而另一段不满足,我们就可以使用二分。二分模板while(l<r){ int mid=l+r>>1; if(a[mid]>=x) r=mid; else l=mid+1;}while(l<r){ int mid=l+r+1>>1; if(a[mid]<=...
2019-11-11 23:53:37 274
原创 算法竞赛进阶指南0x 前缀和与差分
激光炸弹一种新型的激光炸弹,可以摧毁一个边长为 R 的正方形内的所有的目标。现在地图上有 N 个目标,用整数Xi,Yi表示目标在地图上的位置,每个目标都有一个价值Wi。激光炸弹的投放是通过卫星定位的,但其有一个缺点,就是其爆炸范围,即那个边长为 R 的正方形的边必须和x,y轴平行。若目标位于爆破正方形的边上,该目标不会被摧毁。求一颗炸弹最多能炸掉地图上总价值为多少的目标。输入格式第一...
2019-11-09 21:09:08 294
原创 算法竞赛进阶指南0x 递归与递推
知识点递归:当问题存在,C->B->A这样的拓扑序的情况下,我们即可使用递归,把A直接丢给递归,在处理A之前先处理B,在处理B之前先处理C递推:和递归相反,递推先处理C再B最后A递归实现指数型枚举从 1~n 这 n 个整数中随机选取任意多个,输出所有可能的选择方案。输入格式输入一个整数n。输出格式每行输出一种方案。同一行内的数必须升序排列,相邻两个数用恰好1个空格隔开...
2019-11-09 13:16:54 371
原创 算法竞赛进阶指南0x 位运算
知识点位运算的主要操作符<<,>>,&,|,^ ,分别是左移,右移,位与,位或,位异或。左移常用操作 1<<n 表示2n,左移n位表示*2n,其实很好理解右移常用操作k>>1表示/2,向0取整,向0取整,而/2是向下取整,感受一下这细微的区别。位与,常用操作n&1,提取最低位。位或,一般用于把某一项置1。位异或,把某一项取...
2019-11-09 10:52:23 496
原创 高等数学--最后两章知识点总结
第二型曲线积分1.直接带入求解:例如求解:∫ydx+xdy\int{ydx}+{xdy}∫ydx+xdy,L为圆周x=Rcos t,y=Rsin t 上从0到π\piπ/2我们直接带入求解:∫Rsintd(Rcost)+Rcostd(Rsint)\int{Rsin td(Rcos t)}+{Rcostd(Rsint)}∫Rsintd(Rcost)+Rcostd(Rsint)我们就能把dx...
2019-11-02 21:23:17 2378 4
原创 PAT甲级1057stack---对顶堆
前言这题我搜了一下,好像没有人用对顶堆做,都是树状数组。事实上我第一次接触动态中位数就是用对顶堆做的,我就不服,我就要楞头用对顶堆做,但是这题我忙活了半天踩了好多坑。。。终于被我用堆顶堆搞出来的。题目1057 Stack (30 分)Stack is one of the most fundamental data structures, which is based on the pri...
2019-10-31 20:35:55 150
原创 概率论知识点--上半学期
第一章:概率论的基本概念//素材来源于B站猴博士,如有侵权立即删除这里大部分是初中学的,引入了很少的几个概念:P(A‾\overline{A}A)= 1-P(A)意思就是一件事的逆,一定等于一减这件事。P(A-B)=P(AB‾\overline{B}B)=P(A)-P(AB)意思就是一件事减去另一件事,就像等于当这件事发生另一件事不发生。还有就是P(A)=P(AB)+P(AB‾...
2019-10-25 20:23:11 4522 2
原创 字符串处理--Trie
Trie(字典树)非常好用的数据结构,拥有线性时间复杂度。详细请见ACwing~ 。~来道例题:前缀统计给定N个字符串S1,S2…SN,接下来进行M次询问,每次询问给定一个字符串T,求S1~SN中有多少个字符串是T的前缀。输入字符串的总长度不超过106,仅包含小写字母。输入格式第一行输入两个整数N,M。接下来N行每行输入一个字符串Si。接下来M行每行一个字符串T用以询问。输出格式...
2019-10-22 16:44:42 354
原创 字符串处理之---字符串哈希
前言字符串哈希,非常非常好用NB的方法,虽然有一定概率会翻车(翻车概率极低),但是这个是真的NB,你如果会这个在大多数场合可以避免掉有一些算法的学习,比如马拉车算法,你学马拉车只能处理回文字符串,虽然马拉车是O(N) ,但在非极端测试点的情况下我们可以用字符串哈希来偷鸡,字符串哈希简单好用,比KMP简单很多。(KMP有不可替代的场合,KMP还是有必要的)字符串哈希能处理非常非常多的情况,话不多...
2019-10-21 21:17:19 355
原创 快速过桥
快速过桥问题原题:题意:有n个人要过桥,每次只能过一个或两个人,只有一个手电筒,所以如果还有人未过桥要有人把手电筒带回来,每个人过桥时间都不相同,问所有人过桥最少需要多长时间。#include<stdio.h>using namespace std;const int N=1010;int a[N];int t;void swap(int *a,int *b){...
2019-10-19 19:23:43 191
原创 图论基础--最短路模板
题目选自ACwingDijkstra最短路:给定一个n个点m条边的有向图,图中可能存在重边和自环,所有边权均为正值。请你求出1号点到n号点的最短距离,如果无法从1号点走到n号点,则输出-1。输入格式第一行包含整数n和m。接下来m行每行包含三个整数x,y,z,表示存在一条从点x到点y的有向边,边长为z。输出格式输出一个整数,表示1号点到n号点的最短距离。如果路径不存在,则输出-1。...
2019-10-19 14:05:52 185
原创 倍增问题之--天才ACM
下面要介绍给大家的题选自《算法竞赛进阶指南》,这道题困扰了我一个月,今天终于被我干掉了,下面给出题目和代码,希望对大家有帮助。天才ACM给定一个整数 M,对于任意一个整数集合 S,定义“校验值”如下:从集合 S 中取出 M 对数(即 2∗M 个数,不能重复使用集合中的数,如果 S 中的整数不够 M 对,则取到不能取为止),使得“每对数的差的平方”之和最大,这个最大值就称为集合 S 的“校验值...
2019-10-19 12:40:23 363
原创 基础算法--ST算法(RMQ)
ST算法的算法的实质是倍增的产物。今天我们想以RMQ为例,介绍ST算法。RMQ题目:给定一段区间,用O(1)的时间复杂度访问(l,r)的最大值输入:101 2 45 7 4 1 126 1 45 751 11 52 34 76 7输出:14545126126我们先上代码:#include<iostream>#include<algorith...
2019-10-17 17:29:07 193
原创 基础图论---拓扑排序
拓扑排序什么是拓扑排序,即访问没有前驱的节点,访问完之后,将该节点删除,我们可以借助队列完成,没什么好说的,我们上拓扑排序代码。给定一个n个点m条边的有向图,图中可能存在重边和自环。请输出任意一个该有向图的拓扑序列,如果拓扑序列不存在,则输出-1。若一个由图中所有点构成的序列A满足:对于图中的每条边(x, y),x在A中都出现在y之前,则称A是该图的一个拓扑序列。输入格式第一行包含两个...
2019-10-17 10:26:45 237
原创 动态规划入门篇--背包九讲 (最后三讲)
今天我们要讲有依赖背包,背包求方案数以及背包求具体方案,咱们先来讲有依赖背包。有依赖背包有依赖背包是背包家族中最难的,也是曾经劝退了无数人的题型。先给出题目和代码把,如果这个背包看不懂,那么可以暂时跳过,因为这对于DP的入门者来说有些难度:有 N 个物品和一个容量是 V 的背包。物品之间具有依赖关系,且依赖关系组成一棵树的形状。如果选择一个物品,则必须选择它的父节点。如下图所示:如果选...
2019-10-16 19:04:41 157
原创 动态规划入门篇--背包九讲 (中间三讲)
今天讲混合背包,二维费用背包,分组背包三种背包,如果前三种背包你玩的6的话这三种背包还是比较简单的:首先混合背包:有 N 种物品和一个容量是 V 的背包。物品一共有三类:第一类物品只能用1次(01背包);第二类物品可以用无限次(完全背包);第三类物品最多只能用 si 次(多重背包);每种体积是 vi,价值是 wi。求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最...
2019-10-15 15:38:34 125
原创 动态规划入门篇--背包九讲(前三讲)
说到DP想必大家都非常头疼,今天就来说说dp的入门问题背包DP(dp最简单一类)。通过背包dp,你能理解动态规划中最经典的状态转移的思想,学好背包绝对会为征服DP迈下最坚实的一步。好话不多说,我们来讲讲第一个问题。(如果想检验自己的代码请移步至acwing)01背包有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。第 i 件物品的体积是 vi,价值是 wi。求解将哪些物品装入背...
2019-10-14 21:07:04 226
原创 算法经典搜索问题--迷宫
在讨论迷宫问题之前咱们先来说说bfsBFS广度优先搜索,顾名思义优先向同高度搜索,这就有个好处,bfs搜索出来的路径一定是最短的,如果理解了,那就直接上迷宫代码迷宫下图给出了一个迷宫的平面图,其中标记为 1 的为障碍,标记为 0 的为可 以通行的地方。010000000100001001110000迷宫的入口为左上角,出口为右下角,在迷宫中,只能从一个位置走到这 个它的上、下、左...
2019-10-13 17:16:54 345
原创 算法经典搜索问题--八皇后
在介绍八皇后问题之前我们先说说dfs吧DFS–深度优先搜索咱们先来看看我的dfs入坑题:指数型枚举#include<iostream>using namespace std;int n;void dfs(int k,int choose){ if(k==n) { for(int i=0;i<n;i++) { ...
2019-10-13 16:03:53 239
原创 算法养成:弱鸡大学生浅谈c++stl
前言弱鸡大二学生,一意孤行学算法半年,首次写博客,欢迎各位大佬指教。今天想谈谈c++比较常用,好用的stl如果想看大佬可移步至AcWing分享。vector:可变数组vector这个真的是个好东西,有重载各类运算符,离散化神器。各类方法:vector<类型> v;v.push_back(x);//在尾部插入xv.pop_back(x);//从尾部删除一个元素set/m...
2019-10-12 21:05:19 161
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人