03 2019 档案
摘要:之前做过一道二进制压缩的题目,感觉也不是很难吧,但是由于见少识窄,这道题一看就知道是撞鸭dp,却总是无从下手....最后看了一眼博客,才顿悟,本次做这道题的作用知识让自己更多的认识二进制压缩,并无其它卵用......呜呜呜~~~ 本题大意:到期末了,某同学的n位老师给他布置了n门家庭作业,要求他在布
阅读全文
摘要:本题大意:给定一个长度为n的序列a,让你输出这个序列子序列中元素和最大的最大上升子序列。 本题思路:一开始肯定可以想到用LIS实现,我们用LIS实现的时候可以发现这个问题并不满足LIS问题的最优子结构,即两者的子问题肯定是不相同的...比如5 2 2 2 1 2 3,在这五个数中,如果按照LIS你会
阅读全文
摘要:本题大意:给出n个长方体,每种长方体不限量,让你求出如何摆放长方体使得最后得到的总高最大,摆设要求为,底层的长严格大于下层的长,底层的宽严格大于下层的宽。 本题思路:一开始没有啥思路...首先应该想到如果数组内的长宽等都是乱序的话会很影响计算的效率,所以我们先进行排序,对于每种长方体,我们将其三种摆
阅读全文
摘要:这道题打破了我常规的做题思路,因为这是我刚开始训练DP,感觉这道题目好晕眼呀,emm其实就是感觉自己是真的菜...... 为什么说打破了我的做题思路呢,因为我平时看题解都是在已经AC或者完全不懂的情况下看了题解用的知识点,然后再自学知识点完成题目,结果这次.......我是真的鸡... 好了言归正传
阅读全文
摘要:本题大意:给定多个矩形的长和宽,让你判断最多能有几个矩形可以嵌套在一起,嵌套的条件为长和宽分别都小于另一个矩形的长和宽。 本题思路:其实这道题和之前做过的一道模版题数字三角形很相似,大体思路都一致,这道题是很经典的DAG上的最长路问题,用dp[ i ]表示以i为出发点的最长路的长度,因为每一步都只能
阅读全文
摘要:本题大意:给出两个字符串,让你求出最长公共子序列的长度并输出。 本题思路:本题是经典的DP问题,由于是两个字符串,那么我们就用一个二维数组来进行区分,用dp[ i ][ j ]来表示在s1和s2中分别以i, j 结尾的子串中最长公共子序列的长度,很容易得出dp[i + 1] [j + 1] 的值只与
阅读全文
摘要:本题大意:给出n和n个整数,让你求出其中不上升子序列的个数。 本题思路:用dp[ i ]保存第i个防御系统攻击的最低的导弹,遍历数组,遇到更低的导弹则更新最小值,否则新加一个系统用来防御,并且更新最小值。 参考代码:
阅读全文
摘要:最近在学习DP,心里就一个感觉,难,这几天上课比较忙,就利用一些空闲时间看了n遍算法导论和n遍白书上面有关Dp的章节,现在感觉自己......萌萌哒...... 回归正题,其实收获还是有一些的,今天准备开始做一些动态规划的入门级的水题... 先来让dsy大佬带领大家认识一下dp...脸黑.jpg D
阅读全文
摘要:最近一直在学dp,但是感觉进度明显慢了很多,希望自己可以加一把劲,不要总是拖延了... 在LIS的优化中我遇到了二分查找的问题,之前也知道lower_bound和upper_bound两个函数,但是没有做一个具体的总结,在下面我会总结这两个函数的用法,也会给出这两个函数的实现代码,代码是参考c ++
阅读全文
摘要:最近学到了dp,一开始以为思维的体操是时候绽放了.... 傲娇.jpg ....但是.... 下面回归正题: 单调队列:单调队列分为两种,即单调递增和单调递减队列,简单的理解就是基本队列赋予严格的递增或递减的单调性即可。 单调队列一般用于优化,一般有如下用途。 下面给一道单调队列的模版题: 题目链接
阅读全文
摘要:本文主要内容为基础DP,内容来源为《算法导论》,总结不易,转载请注明出处。 后续会更新出kuanbin关于基础DP的题目...... 动态规划: 动态规划用于子问题重叠的情况,即不同的子问题具有相同的公共子子问题,在这种情况下分治算法会做许多不必要的工作,它会反复求解那些子子问题使得程序边的缓慢。而
阅读全文
摘要:本题大意:给定一个迷宫,让你判断是否能从给定的起点到达给定的终点,这里起点需要输入起始方向,迷宫的每个顶点也都有行走限制,每个顶点都有特殊的转向约束...具体看题目便知... 本题思路:保存起点和终点的状态,保存每个顶点的状态,包括每个方向的可转向方向,然后直接BFS即可,记得保存每个儿子结点的爹,
阅读全文
摘要:本题大意:给出一个n * m的地,‘#’ 代表草, ‘.’代表陆地,每次选择这片地里的两片草,可选相等的草,选择的两片草初始状态为被燃状态,每一分钟被点燃的草会将身边的四连块点。问你需要对于给定的这片地最少需要多少分钟能燃烧完,燃烧不完输出 -1. 本题思路:很直观的一道题,枚举所有可能开始燃烧的点
阅读全文
摘要:做题时需要注意,爬楼有向上和向下爬之分... 本题大意:输入 l, r, c, 分别代表地牢的楼层数和每层地牢的长和宽,地牢由rock and point and source and key组成,你初始在s位置,你只能向身边的四个方向和上下方向移动,问你是否能走出地牢,能的话求出最短路径。 本题思
阅读全文
摘要:我把自己演哭了... 心酸.jpg 写了很多个版本的,包括数学公式暴力,快速幂TLE等等,最后想到了优化快速幂里的乘法,因为会爆longlong,但是和别人优化的效率简直是千差万别...? 本题大意: 给定三个longlongint范围内的正整数a, b, c,求出a^b mod c 的结果并输出。
阅读全文
摘要:这道题......被我各种姿势搞死的... 本题大意:给出两个数A和B,判断A和B是否相等,对应输出YES or NO。 本题思路:本题我有两种思路,第一种是直接去除前导零和后导零然后稍加处理比较字符串即可,第二种是找出每个字符串的 '.' 然后向两边搜索即可,下面给出第一种思路的代码,仅供参考,建
阅读全文
摘要:本题大意:给出一个1000位以内的大数和一个小数,让你计算并给出大数对小数取余的结果。 本题思路:由下面的公式可以推出本题的计算公式,套入即可解决,建议自己把这个公式推一下,很简单的... 参考代码: 1 #include <cstdio> 2 #include <cstring> 3 using
阅读全文
摘要:本题大意:给定一个n,让你计算并输出第n个菲波数。 本题思路:主要就是模拟加法,其它都好说。 1 #include <cstdio> 2 #include <cstring> 3 #include <iostream> 4 using namespace std; 5 6 const int max
阅读全文
摘要:本题大意:给定一个10000以内的整数n,让你求出n!并输出。 本题思路:先初始化一个存放答案的数组ans,初始ans[0] = 1,并初始化其剩下的元素为0,接着就从2开始依次与ans数组内的每一个数相乘,具体乘法过程见代码,需要注意的就是求divisor时自身此时的值也是需要加上的,还有就是注意
阅读全文
摘要:本题大意:给出两个1000位以内的大数a 和b,让你计算a + b的值。 本题思路:字符串模拟就能过,会Java的大佬应该不会点进来...... 参考代码: 1 #include <cstdio> 2 #include <cstring> 3 using namespace std; 4 5 con
阅读全文
摘要:这道题TLE了很多次,原来一直以为将数字化为最简可以让运算更快,但是去了简化之后才发现,真正耗时的就是化简....还和队友学到了用状态少直接数组模拟刚就能过... 本题大意:给出可乐的体积v1,给出两个杯子v2和v3,要求v2 + v3 == v1,每次只能从一个杯子倒到另一个杯子,问最少倒多少次可
阅读全文
摘要:这道题做了很长时间,一开始上课的时候手写代码,所以想到了很多细节,但是创客手打代码的时候由于疏忽又未将pair赋初值,导致一直输出错误,以后自己写代码可以专心一点,可能会在宿舍图书馆或者Myhome,创客晚上好吵呀,隔壁真的服... 本题大意:给定两个杯子的容量,有六种操作,通过操作使得两个被子其中
阅读全文
摘要:昨天晚上12点刷到的这个题,一开始一位是BFS,但是一直没有思路。后来推了一下发现只需要依次枚举第一行的所有翻转状态然后再对每个情况的其它田地翻转进行暴力dfs就可以,但是由于二进制压缩学的不是很透,一直有小问题,下面我还会讲子集生成的相关方法,有兴趣的同学可以继续关注。 本题大意:一块地,有黑(1
阅读全文
摘要:这道题做了有四个小时吧,今天一整天都处于边玩边学的状态,我很是不喜欢...一开始用了20分钟模拟,过了样例后TLE了,就在考虑是不是判断是否重复判定的数组开大了,结果一直蛙,后面想到了map判重,结果由于还没有将BUG改完,都只是能过样例,最后看了题解,发现由于我菜将一个判断条件的位置写错了位置..
阅读全文
摘要:一开始模拟了一波大数取余结果超时了,最后改成long long过了emmm... 本题大意:给出一个200以内的数n,让你找出一个m使得m % n == 0,要求m只有1和0组成。 本题思路:BFS模拟即可。 参考代码: 1 #include <cstdio> 2 #include <queue>
阅读全文
摘要:本题大意:一个农夫和一头牛在一个数轴上,牛不动,农夫每次可使自己的坐标 +1 , -1, *2 ,问最小需要多少次农夫与牛坐标相等。 本题思路:最短路,BFS。 本题代码: 1 #include <cstdio> 2 #include <cstring> 3 #include <map> 4 #in
阅读全文
摘要:本文用于记录基本排序的算法,毕竟博主是个健忘的人emm...... 先来总结一下寒假生活吧,不想看的童鞋可以直接跳过这部分嘤嘤嘤...还记得放寒假时的激动,是因为自己感觉真的能有自己独立的时间去学习算法了,但现在看来emm还是太年轻了...... 寒假完成了寒假任务的不到1/4,寒假给4个亲戚补课你
阅读全文
摘要:首先介绍一下线性筛,之所以称之为线性筛是因为它的复杂度为O(n)。 与埃氏筛相比,欧拉筛不会对已经被标记过的合数再进行重复标记,它们保证每个合数只会被它的最小质因数筛去故效率更高。欧拉筛将合数分解为 (最小质因数 * 一个合数) 的形式,通过最小质因数来判断当前合数是否已经被标记过。 2020-03
阅读全文
摘要:给出一篇有关素数线性筛和区间筛的博客,有兴趣的读者可以自取。 本题大意: 给定两个四位的素数,没有前导零,每次变换其中的一位,最终使得两个素数相等,输出最小变换次数。要求变换过程中的数也都是素数。 本题思路: 求最小步数,用BFS,判断素数,用欧拉筛打表。 参考代码: 1 #include <cst
阅读全文
摘要:我要被这个好用的memset气死了...... 真香 这道题也是出现了和昨天一样的情况,半小时写完,改bug改了1个小时,结果最后啸神说memeset不能随便给大数赋值,结果一改就改对了emm,真的是要被自己菜死了。 本题大意:给定一张地图,Y和M同时走向附近的KFC,找出Y和M距离和最短的KFC并
阅读全文
摘要:本题是一道连通块的入门题,用来练手,后续还会更新连通块的题目。 本题大意:一个n * m 的陆地上面有很多水洼,让你统计水洼的个数并输出。 本题思路:按照顺序遍历陆地,如果发现水洼就将它的八连块都进行探索,发现水洼就继续探索,直到一片大水洼都被探索完,就继续进行其他搜索,DFS。 代码: 1 #in
阅读全文
摘要:昨天中午做的这道题,结果蛙了一整天,就因为一行代码困住了,今天算是见识到自己有多菜了。流泪.jpg 本题大意:给一个5 * 5的迷宫,1表示墙壁,0表示通路,从左上角走到右下角并输出路径。 本题思路:主要就是BFS寻路,为了方便打印,从右下角开始进行BFS。 注意输出时候的大坑,会有标记。 本题代码
阅读全文
摘要:做完题之后看了网上的一些题解但是发现他们的解释大部分都是错误的,所以就自己写了一下,笔者能力也有限,有错误之处大家多多指正。 第一次看题的时候以为就是简单的八皇后,但是写了之后发现存在很多问题,比如需要记录放入的棋子数,在一次访问之后没有回复原来棋盘的形状等一些问题。 本题思路: 回溯思想,对于每一
阅读全文
摘要:原题链接 本题思路:暴力深搜,具体见代码。
阅读全文

浙公网安备 33010602011771号