摘要: gym/102021/K 题意: 给定n(n<=60)个直线 ,长度<=1000; 可以转化为取 计算 ans = (sum + 10 - g) / ( n + 1) 在小于5的条件下的最大值,其中sum为任取n个的直线长度和,g是给定常数。 思路: 用类似背包的求法,把可能取到的结果用dp[i][ 阅读全文
posted @ 2019-01-18 20:04 ckxkexing 阅读(262) 评论(0) 推荐(0) 编辑
摘要: P2051 [AHOI2009]中国象棋 题意: 给定一个n*m的空棋盘,问合法放置任意多个炮有多少种情况。合法放置的意思是棋子炮不会相互打到。 思路: 这道题我们可以发现因为炮是隔一个棋子可以打出去,所以每一行每一列最多放置两个炮。 这样子我们就可以试着压缩状态,记录前i行有几列是放一个棋子的,有 阅读全文
posted @ 2019-01-18 16:23 ckxkexing 阅读(160) 评论(0) 推荐(0) 编辑
摘要: P1070 道路游戏 题意: 有一个环,环上有n个工厂,每个工厂可以生产价格为x的零钱收割机器人,每个机器人在购买后可以沿着环最多走p条边,一秒走一条,每条边不同时间上出现的金币是不同的,问如何安排购买机器人,可以在m的时间内,得到最多的金币。 思路: $O(n^3)$的算法,设$DP[i]$ 为第 阅读全文
posted @ 2019-01-18 14:40 ckxkexing 阅读(207) 评论(0) 推荐(0) 编辑
摘要: P2577 [ZJOI2005]午餐 )逼着自己做DP 题意: 有n个人打饭,每个人都有打饭时间和吃饭时间。有两个打饭窗口,问如何安排可以使得总用时最少。 思路: 1)可以发现吃饭时间最长的要先打饭。(我也是看别人题解才知道) 2)然后就是对于前i个人,他不是在一号窗口打饭,就是在二号窗口打饭。所以 阅读全文
posted @ 2019-01-18 10:47 ckxkexing 阅读(192) 评论(0) 推荐(0) 编辑