摘要: 集合位置 思路: 次短路; 先走一遍最短路; 记录最短路径,然后依次删边走最短路; 最短的长度就是次短路; 来,上代码: 阅读全文
posted @ 2017-04-22 17:41 IIIIIIIIIU 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 灾后重建 思路: 看到n<=200,思考弗洛伊德算法; 如何floyed呢? floyed是一种动态规划求最短路的算法; 它通过枚举中间点来更新两点之间最短路; 回到这个题本身; 所有点的重建完成的时间和询问的时间都已经排好序了; 所以,我们把floyed拆开; 对于一个三维的k,i,j的floye 阅读全文
posted @ 2017-04-22 16:41 IIIIIIIIIU 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 通往奥格瑞玛的道路 思路: 二分+spfa; 二分最大费用,然后判断只走小于等于二分答案的点是否可以花费小于体力上限的血量; 来,上代码: 阅读全文
posted @ 2017-04-22 14:50 IIIIIIIIIU 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 幸运号码 思路: 传说中的数位dp; 不难发现,n(n<1000) ,那么,n个数的最大和为9*1000=9000; 对于9000*1000的时间范围,我们可以用dp来解决; dp[i][j],表示第i为数总和为j的号码的个数; 每个dp[i][j]都是dp[i-1][j-v](0<=v<=9) 的 阅读全文
posted @ 2017-04-22 10:16 IIIIIIIIIU 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 最长的循环节 思路: 我们尝试一种最简单的方法,模拟; 如何模拟呢? 每个数,对它模k取余,如果它的余数没有出现过,就补0继续模; 所以,当一个余数出现两次时,当前的长度即为循环节长度; 来,上代码: 阅读全文
posted @ 2017-04-22 09:27 IIIIIIIIIU 阅读(574) 评论(0) 推荐(0) 编辑
摘要: 石子归并 思路: 经典动态规划——归并类问题; 我们把状态划为n个,即1-n的n个长度为n个状态; 那么,每个长度为i的状态都可以由i-1个长度为i-1的状态推出; 所以,dp转移方程: dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+1][j]+sum[j]-sum[i-1 阅读全文
posted @ 2017-04-22 09:01 IIIIIIIIIU 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 3的幂的和 思路; 矩阵快速幂; sn-1 3 1 sn * = 1 0 1 1 来,上代码: 阅读全文
posted @ 2017-04-22 08:41 IIIIIIIIIU 阅读(305) 评论(0) 推荐(0) 编辑