自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(29)
  • 收藏
  • 关注

转载 2017级算法模拟上机准备篇(二分+贪心)

GRH:【 我这么喜欢复用曾经题目 然后揉起来的人……你们居然还没套路起来 】计网的烦恼(一维覆盖问题)由题目我们可以知道,答案一定在[l,pl[n]−pl[1]+1][l,pl[n]−pl[1]+1]中,所以我们可以二分答案。通过枚举每一个答案然后判断这个答案合不合理。在这个题目中,如果我们发现答案可以cover所有的地方,那么我们就要去寻找更小的答案,如果发现无法co...

2018-12-25 16:20:00 141

转载 2017级算法模拟上机准备篇(斐波纳契数列)

最简单的斐波纳契数列的递归推导式为:dp[n]=dp[n-1]+dp[n-2];最简单的例子:一对小兔子在出生的第三个月后可以繁殖并每月生一对小兔子,兔子的总对数就是兔子序列:1 1 2 3 5 8...其实我们可以重新思考一下原来的递推公式:兔子分两类:不具有繁殖能力的幼年期和具有繁殖能力的成年期假设B[i]为第i年新出生的兔子数量根据成年即可生育的设定 第i年新出生的...

2018-12-21 15:24:00 132

转载 2017级算法模拟上机准备篇(贪心 进阶_1)

AlvinZH想回家这道题本质上还是贪心与算法的简单的结合,有一个小的trick值的主要一下,结构体优先队列的运算符重载问题。 bool operator<(const Flight& b) const { return c < b.c; }对于每一步都需要当前最大值的问题,我们可以使用优先队列来辅助我们进行操作。...

2018-12-20 20:20:00 141

转载 2017级算法模拟上机准备篇(计算几何 初阶_1)

平面最近点对/最远点对Bamboo之吃我一拳(单纯的平面最近点对)零崎的战争(两个点集的平面最近点对)#include <iostream>#include <algorithm>#include <cmath>using namespace std;const double eps = 1e-6;const int...

2018-12-15 16:39:00 130

转载 2017级算法模拟上机准备篇(贪心 初阶)

贪心问题的关键在于选择合适的贪心策略(局部最优解可以推导出全局最优解)简单·简单的贪心在黑板上写了N个正整数做成的一个数列,进行如下操作:每一次擦去其中的两个数a和b,然后在数列中加入一个数a×b+1,如此下去直至黑板上剩下一个数。在所有按这种操作方式最后得到的数中,最大的max,最小的为min,则该数列的极差定义为M=max-min。这道题是用优先队列辅助实现贪心问...

2018-12-14 16:22:00 130

转载 2017级算法模拟上机准备篇(序列DP 进阶_1)

进阶版的序列DP 从一道题的优化开始ModricWang的序列问题题目描述:给定一个序列,求出这个序列中的最长上升子序列的长度。这道题的本质还是求解一个最长上升子序列的问题相对与之前提到过的O(n^2)的算法 我们可以重新整理思路用O(nlogn)的思路来写,用贪心和二分优化之前的算法我们设置新的DP数组//dp[i]代表的是当前长度为i的上升子序列的末尾元素的大...

2018-12-14 15:22:00 93

转载 2017级算法模拟上机准备篇(序列DP 初阶)

序列DP 是一类蛮有意思的DP 序列区别于数组的地方就在于没有要求连续性从一道简单的序列DP开始:SkyLee炒股票(最大连续子序列和)这道题其实用DP有点浪费的感觉,其实这道题用简单的遍历法也可以,不过实质上还是DP思想的进阶。这道题如何设置DP数组?我们不妨设置DP[i]为以数组元素ar[i]结尾的连续序列的最大和.所以我们很容易得出状态转移方程:dp[i]...

2018-12-14 12:22:00 100

转载 2017级算法模拟上机准备篇(归并排序)

归并排序是分治法的一个最经典也是最基础的应用Divide And Conquer的思想很重要归并排序的的Divide采用了简单的二分 Conquer采用的是将两个有序数组合并为一个有序数组。2014-Inverse number:Reborn 逆序数求解#include <algorithm>#include <iostream>#i...

2018-12-12 22:24:00 119

转载 2017级算法模拟上机准备篇(一)

回顾一下往年的考题知识点:The Last Battle!! 2014级算法期末上机简单题——I wanna be the 升级者Ⅰ 结构体排序 STL:sort()简单题——I wanna be the 升级者Ⅱ 二分 :STL : lower_bound ()简单题——Railway Station 数据结构 : 栈操作模拟简单题——我在东北玩泥巴:博弈论中...

2018-12-11 21:47:00 189

转载 2017级算法第一次上机-C.芸茹的课堂测试

Horner Ruler 霍纳规则没什么好说的 要注意的更多的还是细节的问题取模运算 循环的边界问题#include <algorithm>#include <iostream>#include <cstring>using namespace std;const int maxlen = 1e6 + 10;con...

2018-12-11 00:45:00 80

转载 2017级算法第二次上机-C.芸如的入学测试

这道题考察的实际就是一个简单的前缀和问题。值的注意的还是取模的问题。两个数取模,以防万一,出现对负数取模的问题 可以先加上mod然后再对mod取模。能long long就不int#include <algorithm>#include <iostream>using namespace std;const int maxlen = 1e6 ...

2018-12-11 00:09:00 245

转载 2017级算法第二次上机-E.SkyLee的图书整理

这道题考察了map函数的使用,map最简单的理解就是把一个数映射到一个数。然后使用map也类似hash数组的方法即可map的头文件是<map> map<int,int> 将一个数映射到一个数#include <algorithm>#include <iostream>#include <map>usin...

2018-12-10 23:45:00 159

转载 2017级算法第二次上机-D.天秤的烦恼

这道题考查的还是基本STL的使用 这次考察的是去重函数的STL unique()unique的作用是“去掉”容器中相邻元素的重复元素(不一定要求数组有序),它会把重复的元素添加到容器末尾(所以数组大小并没有改变),而返回值是去重之后的尾地址。所以如果你想要的是将任意一个数组实现去重 那么首先要将他sort排序。然后unique返回的还是去重之后的尾地址,那么len=uniqu...

2018-12-10 20:57:00 113

转载 2017级算法第二次上机-B.第k顺序统计量

第k顺序统计量是一个经典的算法,其本质上是利用类似于快速排序的方法实现的,但是我们可以使用STL模版nth_element()轻松过题。头文件<algorithm>nth_element(a,a+k-1,a+3000000);本质上使的整个数组的趋势上还是从小到大的,本题求解的是第k小的元素,本质上还是把a+k-1这个指针指向的元素安排上当然第一小的元素就...

2018-12-10 20:42:00 114

转载 2017级算法第二次上机-B.女娲加农炮

这道题本质上还是最经典的优先队列的使用的例题:合并果子。借用这道题总结复习一下优先队列。优先队列的头文件:<queue>升序队列priority_queue <int,vector<int>,greater<int> > q;降序队列priority_queue <int,vector<int>,less&lt...

2018-12-10 20:34:00 175

转载 2017级算法第二次上机-A.ModricWang's Real QuickSort Query

其实这道题更多的是模拟题的感觉。按照题目给定的思路写即可。C++ 可以直接使用STL里面的sort。#include <algorithm>#include <iostream>using namespace std;const int maxlen=1e6 + 10;int ar[maxlen];void swap(int *p,...

2018-12-10 20:13:00 65

转载 2017级算法第三次上机-G.ModricWang的导弹拦截系统

这道题实质上是求解给定序列中的的最长不增子序列的长度。首先需要注意的是子序列和子数组的区别。子序列是不要求元素之间的连续性。这道题的求解过程中还是利用了动态规划的思想,也可以进一步学习一下?究竟什么是状态转移方程???其实一般的状态转移方程都是由子状态到父状态,可以是1对1,也开始2对1,但是更为普遍的其实是n对1比如常见的max函数,利用所有子状态的遍历来求解父亲状...

2018-12-10 17:08:00 102

转载 2017级算法第三次上机-F. SkyLee炒股票

这道题其实是股票系列的一道很经典的题目,即只可以买卖一次所带来的最大收益。题目给定的是每天相对于前一天的的收益,所以这道题可以简化为连续n个数的最大值问题。这道题的算法有一点贪心的思想。就是设置curnum和maxnum从开始到末尾扫描,curnum不断加加,同时利用curnum不断更新maxnum。同时如果curnum小于零,那么就抛弃掉前面的数,curnum重新置为0。继...

2018-12-10 16:52:00 111

转载 2017级算法第三次上机-C.SkyLee组装电脑

将两条流水线的问题移植到n条流水线的问题,本质上的DP状态转移方程没有太多变化。两个trick小技巧分享给大家:在n个数中求最小值或者是最大值的情况下。可以采取n=max(n,x)的形式。自己对memset函数的一点理解:memset函数的设置的是字节层面的东西,而不是整个整数。所以一般INF用0X3F3F3F来表示,还有就是memset(ar,0,sizeof(ar...

2018-12-10 00:46:00 121

转载 2017级算法第三次上机-B.SkyLee逛漫展

ALS 一道动态规划最经典的题目动态规划实质上其实就是表格法,利用表格来记录每个子问题的解。DP所关注的其实是递归 即一个较小问题的解和一个较大问题的状态转移问题。其次还要关注的其实还是是初始值的设立,这个决定了后续的递推能否顺利的进行。还有要思考好dp数组所代表的具体的含义 这样在状态转移的过程中 也可以好一点理解。#include <iostrea...

2018-12-10 00:07:00 105

转载 2016级算法第三次上机-A.水水的二分查找

借用着道题来复习一下 二分查找说起二分查找 有几个点是要重视的1.最简单的二分查找2.上下界二分查找的实现3.c++ STL 二分查找三兄弟的使用最简单的二分查找 1 #include <iostream> 2 #include <algorithm> 3 #include <cstring> 4 5 u...

2018-12-09 23:11:00 73

转载 2016级算法第三次上机-E.SkyLee狩猎魔物

这道题本质上还是一个完全背包的问题需要注意的点还是:1.要求装满首先是讲一维初始化问题 至于是正无穷还是负无穷要根据问题而定。2.min OR max?#include <iostream>#include <algorithm>#include <cstring>using namespace std;co...

2018-12-09 15:14:00 79

转载 回到原点 重新感受01背包的魅力 ZerOnePack

  01背包问题是很经典的动态规划问题,给定总容量T,物品的件数。然后给定数组weight[k] value[k]来求解背包装上物品所带来的最大收益。  最开始的时候是设置二维DP数组来求解问题 我们不妨设数组DP[i][j]来表示的是前i件物品在容量为j的情况下所取得的最大收益值,当我们设置好一个DP数组的时候,在思考状态转移方程的时候,可以假设前一状态的方程已经得到了解决,这样的...

2018-12-04 17:46:00 77

转载 中等·Magry摆什锦糖 buaacoding DP 动态规划

  这道题是一道简单的动态规划的问题,题目大意是利用n个数来判断是否可以组成一个值为k的数字  这道题可以利用必须装满的01背包思路来解释,另一方面也可以利用另一种思路来思考,直接从答案入手,定义dp数组DP【i】【j】那么这个数组所代表的意思就是前i个数是否可以组成值为j的数。由于dp的值只有两个,于是我们可以利用bool类型来节约空间。另一方面,动态规划问题处理的核心只有三个...

2018-12-04 16:46:00 90

转载 树形DP初步-真树 buaacoding

其实树形DP的思路还是基于DP,对于一棵树本来就有很好的递归性质,很多树形DP的问题,也不是不可以使用单纯的树上递归来解决,那为什么还要引入递归的问题呢??很简单的回答就是,DP中的P就是programing 的意思,是一种记录,对于递归的低效性,很大一部分来源于对于单个问题的重复计算,我们使用一个数组(一维,或者二维)来记录我们已经求解得到的值,就可以大大提高算法的性能。比起直线性...

2018-12-03 16:26:00 160

转载 二叉树的最长链长度—DFS buaacoding 树形DP初步-二叉树

首先虽然这道题说的是树形DP的事情,但是其实本质上还是考察DFS的事情,说起深搜,自己的理解还是太浅了,一开始对这道题的理解是,默认题目里说的最长链说的是一定会经过俩个叶节点,但是不一定会经过根节点。但是实质上根节点不一定在最长链的通路上。而我一开始实现的操作还是利用了上学期的数据结构的利用递归实现求树的深度。这个时候深搜的作用就被大大消减。深度优先搜索实质上是一种算法,一种思想,而...

2018-12-03 15:16:00 303

转载 至多可以交易k次的股票交易 (c++)

1 #include <iostream> 2 #include <algorithm> 3 #include <string.h> 4 using namespace std; 5 6 const int Maxlen=1e5; 7 int prices[Maxlen]; 8 int n,k; 9 10 ...

2018-11-30 20:12:00 239

转载 至多只能交易两次的股票交易 最大值

1 #include <algorithm> 2 #include <iostream> 3 #include <string.h> 4 using namespace std; 5 6 const int Maxlen=1e5; 7 const int INF = 0x3f3f3f; 8 const int _IN...

2018-11-30 19:42:00 297

转载 Leetcode 股票交易(c++)

Best Time to Buy and Sell Stock III给定每一天的股票价格(用 price数组来存储) 限定条件是至多只能交易两次交易(一次买卖为一次交易)#include <algorithm>#include <iostream>#include <string.h>using namespace std;...

2018-11-30 19:28:00 199

空空如也

空空如也

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

TA关注的人

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