随笔分类 -  BuaaCoding

北航软件学院学习OJ,网址是https://buaacoding.cn/index
摘要:905 AlvinZH的奇幻猜想——三次方 思路 中等题。题意简单,题目说得简单,把一个数分成多个立方数的和,问最小立方数个数。 脑子转得快的马上想到贪心,从最近的三次方数往下减,反正有1^3在最后撑着保证减完。不好意思这是错的,因为1,27,64,125...等立方数之间并不是倍数关系,不能构成贪 阅读全文
posted @ 2017-12-04 16:54 AlvinZH 阅读(641) 评论(0) 推荐(0)
摘要:B Bamboo和巧克力工厂 分析 三条流水线的问题,依然是动态规划,但是涉及的切换种类比较多。比较易于拓展到n条流水线的方式是三层循环,外层是第k个机器手,里面两层代表可切换的流水线 核心dp语句:cost[i][k] = min(cost[i][k], cost[j][k 1]+t[j][i]+ 阅读全文
posted @ 2017-12-04 16:53 AlvinZH 阅读(477) 评论(0) 推荐(0)
摘要:A Bamboo的小吃街 分析 经典的两条流水线问题,题目描述基本类似于课件中的流水线调度,符合动态规划最优子结构性质 关键的动态规划式子为: dp[0][j] = min(dp[0][j 1], dp[1][j 1] + t[1][j 1]) + p[0][j] //保存在左边第j个店铺时已经用的 阅读全文
posted @ 2017-12-04 16:52 AlvinZH 阅读(339) 评论(0) 推荐(0)
摘要:976 AlvinZH想回家 思路 如果在第i小时有一些飞机延误,那么一架飞机的c值越大,这一小时产生的损失也越大。而使这一小时产生的损失尽可能的小并不会导致接下来时间产生的损失增大。因此应当每一小时都找出要飞的飞机中c值最大的飞走,即 贪心思想 。 题目有要求,第k+i小时,应该从1~k+i架航班 阅读全文
posted @ 2017-11-20 18:16 AlvinZH 阅读(668) 评论(0) 推荐(0)
摘要:977 AlvinZH过生日 思路 难题。逆推DP。 要明确dp的状态只与是否有选择权有关,而与选择权在谁手里无关。因为不论选择权在谁手里,那个人都会尽可能的获得最大的蛋糕重量。 dp[i]表示分配到第i个物品为止,当前拥有选择权的人能获得的最大蛋糕重量,即蛋糕[i~n]的最大值。以有选择权的的人列 阅读全文
posted @ 2017-11-20 18:13 AlvinZH 阅读(678) 评论(0) 推荐(0)
摘要:963 AlvinZH打怪刷经验 思路 这不是一道普通的01背包题。大家仔细观察数据的范围,可以发现如果按常理来的话,背包容量特别大,你也会TLE。 方法一:考虑01背包的一个常数优化 作用甚微。考虑到V很大时,由于只需要dp[V]的值,倒推前一个物品,只要知道dp[V Wn]即可。以此类推,对以第 阅读全文
posted @ 2017-11-20 18:12 AlvinZH 阅读(458) 评论(0) 推荐(0)
摘要:914 AlvinZH的奇幻猜想 整数乘积puls 思路 难题。动态规划。 将数字串按字符串输入,处理起来更方便些。 dp[i][j]:表示str[0~i]中插入j个乘号时的乘积最大值。状态转移方程为:dp[i][j] = max(dp[i][j], dp[i k][j 1] convert(i k 阅读全文
posted @ 2017-11-20 18:10 AlvinZH 阅读(590) 评论(0) 推荐(0)
摘要:906 AlvinZH的奇幻猜想 整数乘积 思路 难题。动态规划。 将数字串按字符串输入,处理起来更方便些。 dp[i][j]:表示str[0~i]中插入j个乘号时的乘积最大值。状态转移方程为:dp[i][j] = max(dp[i][j], dp[i k][j 1] convert(i k+1,i 阅读全文
posted @ 2017-11-20 18:09 AlvinZH 阅读(538) 评论(0) 推荐(0)
摘要:851 AlvinZH的鬼畜密码 思路 难题。动态规划。 先判断字符串是否合理(可翻译),然后分段处理,每一小段用动态规划求出解法数。 dp[i]:字符串str[0~i]的解法数。通过判断str[i],不同情况下dp[i]求解情况不同。 在参考代码一中,助教使用了思路比较好理解的方法,同学们可以借助 阅读全文
posted @ 2017-11-20 18:08 AlvinZH 阅读(588) 评论(0) 推荐(0)
摘要:本文由AlvinZH所写,欢迎学习引用,如有错误或更优化方法,欢迎讨论,联系方式QQ:1329284394。 前言 "动态规划" (Dynamic Programming),是一个神奇的东西。DP只能意会,不可言传。大家在做DP题的时候一定要理清思路,一般是先不管空间,毕竟以空间换时间,大多数题都是 阅读全文
posted @ 2017-11-15 19:39 AlvinZH 阅读(1491) 评论(1) 推荐(1)
摘要:873 思路 这是一道非常基础的题,目的是帮助大家回顾快排相关的知识。大家完成此题之后应该就对快排有比较深刻的印象了。 对于整个快排的流程,题目描述中已经给了清晰完整的伪代码。需要自己加工的部分就是,需要手动记录下每次划分后的分界线,也就是划分时的变量$i$。 由于数据较为简单,要求的层数也较浅,实 阅读全文
posted @ 2017-10-31 15:07 AlvinZH 阅读(318) 评论(0) 推荐(0)
摘要:891 ModricWang's Number Theory II 思路 使得序列的最大公约数不为1,就是大于等于2,就是找到一个大于等于2的数,它能够整除序列中的所有数。 考虑使得一个数d整除数组中所有数的代价: 如果一个数不能被b整除,那么可以花费x的代价删掉它,或者通过多次加1使得它可以被d整 阅读全文
posted @ 2017-10-31 15:06 AlvinZH 阅读(419) 评论(0) 推荐(0)
摘要:862 AlvinZH的儿时梦想——运动员篇 思路 难题。 应该想到,不管给出的数据如何,每一个淘汰的人不会对最终答案产生任何影响,所以每次淘汰就把人除掉就可以了,最后剩下的两个人计算它们从开始到相遇需要的时间就可以了。 首先对每个人根据初始位置进行排序,因为相遇总是先发生在相邻的两个人身上的,所以 阅读全文
posted @ 2017-10-31 15:03 AlvinZH 阅读(306) 评论(0) 推荐(0)
摘要:Bamboo的饼干 分析 从两个数组中各取一个数,使两者相加等于给定值。要注意去重和排序 难度不大,方法很多,基本只要不大于O(n^2 ) 的都可以过。本意想考察二分搜索 还可以借助stl中的map,set以及lower_bound等,当然只用数组也可以做。由于数据范围不大,也可以直接用数组下标来计 阅读全文
posted @ 2017-10-31 14:54 AlvinZH 阅读(356) 评论(0) 推荐(0)
摘要:872 AlvinZH的儿时梦想 坦克篇 思路 简单题。仔细看题,题目意在找到直线穿过的矩形数最小,不能从两边穿过。那么我们只要知道每一行矩形之间的空隙位置就可以了。 如果这里用二维数组记住每一个空隙的位置,一是没有必要,二是记录了还要大量的处理才能得到答案。反正我是没想过要怎么处理。 可以发现,要 阅读全文
posted @ 2017-10-31 14:34 AlvinZH 阅读(401) 评论(0) 推荐(0)
摘要:Bamboo的OS实验 分析 首先理解题意,要完成不同数量的不同命令,但是完成相同的命令之间必须有n个间隔,为使得时间最短,自然优先用其他命令来填充这n分钟的时间,由于数量少的命令可以用来填充空隙,所以次数最多的命令是起作用最大的。而且注意到,每次具体执行的是哪个命令并不影响时间,只与命令的数量有关 阅读全文
posted @ 2017-10-31 14:33 AlvinZH 阅读(488) 评论(0) 推荐(0)
摘要:890 画个圈圈诅咒你 思路 简单题。题目中的圆并没有什么实际作用,简化成 线段重合 问题会更好理解些。 暴力解法:使用双重for循环会T到想哭,记住最直接的方法一般是过不了题的。 解法一:二分查找。空间较小,时间更长。 把圆相离的问题转换为线段相交的问题,按先起点后终点的顺序升序排列这些圆(线段) 阅读全文
posted @ 2017-10-31 14:30 AlvinZH 阅读(625) 评论(0) 推荐(0)
摘要:864 AlvinZH的儿时回忆 蛙声一片 题目链接: "https://buaacoding.cn/problem/865/index" 思路 中等题。难点在于理解题意!仔细读题才能弄懂题目规则。整个过程是通过模拟位置变化进行的。 第一个问题是AlvinZH的情绪变化,忽略某一位置的青蛙条件是:刚 阅读全文
posted @ 2017-10-20 13:10 AlvinZH 阅读(605) 评论(0) 推荐(0)
摘要:864 AlvinZH的儿时回忆 跳房子 题目链接: "https://buaacoding.cn/problem/864/index" 思路 这是一道简单题,但是同样有人想复杂了,DP?大模拟?。 本题只要判断能不能到达最后一个格子,又没有问方法数。所以,只需要一个单变量rightMost记录最远 阅读全文
posted @ 2017-10-20 13:07 AlvinZH 阅读(410) 评论(0) 推荐(0)
摘要:870 斐波那契进阶 题目链接: "https://buaacoding.cn/problem/870/index" 思路 通过读题就可以发现这不是一般的求斐波那契数列,所以用数组存下所有的答案是不现实的。题目也明确点明此题可以利用矩阵的计算解题。 如果你稍微百度一下你会了解到快速矩阵幂的概念。 " 阅读全文
posted @ 2017-10-20 13:05 AlvinZH 阅读(369) 评论(0) 推荐(0)