摘要: 976 AlvinZH想回家 思路 如果在第i小时有一些飞机延误,那么一架飞机的c值越大,这一小时产生的损失也越大。而使这一小时产生的损失尽可能的小并不会导致接下来时间产生的损失增大。因此应当每一小时都找出要飞的飞机中c值最大的飞走,即 贪心思想 。 题目有要求,第k+i小时,应该从1~k+i架航班 阅读全文
posted @ 2017-11-20 18:16 AlvinZH 阅读(654) 评论(0) 推荐(0) 编辑
摘要: 977 AlvinZH过生日 思路 难题。逆推DP。 要明确dp的状态只与是否有选择权有关,而与选择权在谁手里无关。因为不论选择权在谁手里,那个人都会尽可能的获得最大的蛋糕重量。 dp[i]表示分配到第i个物品为止,当前拥有选择权的人能获得的最大蛋糕重量,即蛋糕[i~n]的最大值。以有选择权的的人列 阅读全文
posted @ 2017-11-20 18:13 AlvinZH 阅读(667) 评论(0) 推荐(0) 编辑
摘要: 963 AlvinZH打怪刷经验 思路 这不是一道普通的01背包题。大家仔细观察数据的范围,可以发现如果按常理来的话,背包容量特别大,你也会TLE。 方法一:考虑01背包的一个常数优化 作用甚微。考虑到V很大时,由于只需要dp[V]的值,倒推前一个物品,只要知道dp[V Wn]即可。以此类推,对以第 阅读全文
posted @ 2017-11-20 18:12 AlvinZH 阅读(453) 评论(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 阅读(579) 评论(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 阅读(533) 评论(0) 推荐(0) 编辑
摘要: 851 AlvinZH的鬼畜密码 思路 难题。动态规划。 先判断字符串是否合理(可翻译),然后分段处理,每一小段用动态规划求出解法数。 dp[i]:字符串str[0~i]的解法数。通过判断str[i],不同情况下dp[i]求解情况不同。 在参考代码一中,助教使用了思路比较好理解的方法,同学们可以借助 阅读全文
posted @ 2017-11-20 18:08 AlvinZH 阅读(572) 评论(0) 推荐(0) 编辑
摘要: 本文由AlvinZH所写,欢迎学习引用,如有错误或更优化方法,欢迎讨论,联系方式QQ:1329284394。 前言 "动态规划" (Dynamic Programming),是一个神奇的东西。DP只能意会,不可言传。大家在做DP题的时候一定要理清思路,一般是先不管空间,毕竟以空间换时间,大多数题都是 阅读全文
posted @ 2017-11-15 19:39 AlvinZH 阅读(1478) 评论(1) 推荐(1) 编辑
摘要: 873 思路 这是一道非常基础的题,目的是帮助大家回顾快排相关的知识。大家完成此题之后应该就对快排有比较深刻的印象了。 对于整个快排的流程,题目描述中已经给了清晰完整的伪代码。需要自己加工的部分就是,需要手动记录下每次划分后的分界线,也就是划分时的变量$i$。 由于数据较为简单,要求的层数也较浅,实 阅读全文
posted @ 2017-10-31 15:07 AlvinZH 阅读(311) 评论(0) 推荐(0) 编辑
摘要: 891 ModricWang's Number Theory II 思路 使得序列的最大公约数不为1,就是大于等于2,就是找到一个大于等于2的数,它能够整除序列中的所有数。 考虑使得一个数d整除数组中所有数的代价: 如果一个数不能被b整除,那么可以花费x的代价删掉它,或者通过多次加1使得它可以被d整 阅读全文
posted @ 2017-10-31 15:06 AlvinZH 阅读(413) 评论(0) 推荐(0) 编辑
摘要: 862 AlvinZH的儿时梦想——运动员篇 思路 难题。 应该想到,不管给出的数据如何,每一个淘汰的人不会对最终答案产生任何影响,所以每次淘汰就把人除掉就可以了,最后剩下的两个人计算它们从开始到相遇需要的时间就可以了。 首先对每个人根据初始位置进行排序,因为相遇总是先发生在相邻的两个人身上的,所以 阅读全文
posted @ 2017-10-31 15:03 AlvinZH 阅读(299) 评论(0) 推荐(0) 编辑