上一页 1 ··· 49 50 51 52 53 54 55 56 57 ··· 74 下一页
摘要: 题目大意: 你有k次获取宝物的机会,每次会等概率的从1~n中选出一种宝物给你。 每种宝物都有一个依赖s,表示你只有先吃了s中的所有宝物才能吃当前宝物,如果S没吃完,视作放弃吃当前宝物的机会。 每个宝物有一个价值p,求你获取k个宝物以后的期望收益。 思路: 状压DP。 f[i][j]表示吃了i轮后,状 阅读全文
posted @ 2017-10-30 20:11 skylee03 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 一个n*m的格子上有b个障碍物,现在让你往上面放正方形(长宽在格线上)。问可以放多少种边长、位置不同的正方形? 思路: 很容易想到一个O(n^3)的暴力: 首先前缀和,然后枚举某一个顶点和正方形的边长,判断一下正方形里面是否为空,如果空,则为一种满足条件的答案。 枚举边长可以改成二分,这 阅读全文
posted @ 2017-10-30 19:19 skylee03 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 平面直角坐标系内有n个点,每个点有一个点权。 你从原点p出发,走若干个点然后回到原点。 两个点之间只能笔直走,你的收获为你的路径围起来的区域内的所有店权和除以路径长度。 问最大收益。 思路: 不难发现:每走一步,相当于在路径形成的多边形中增加一个三角形。 我们可以预处理出所有这样以p为顶 阅读全文
posted @ 2017-10-30 19:17 skylee03 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 一个n*m(n<=100,m<=10)的格子图,里面有些地方可以放炮兵,有些地方不行,炮兵能像上下左右攻击到两格远的位置。 问在炮兵不会互相攻击的情况下,最多能放多少炮兵? 思路: 状压DP。 f[i][j][k]表示DP到第i行,当前行状态为j,上一行状态为k。 然后枚举当前行,这一行 阅读全文
posted @ 2017-10-28 07:47 skylee03 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 给你一个n*n的棋盘,让你往上面放国王,让它们不会互相攻击。 问有几种方案? 思路: 状压DP。 类似于BZOJ1725,不过现在没有要求哪里一定不能放,但是斜着也不能相邻了。 用f[i][j][k]表示第i行状态为j,总共放了k个国王。 转移的时候枚举行数i,当前行状态j,上一行状态l 阅读全文
posted @ 2017-10-27 19:10 skylee03 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 你有k(k<=16)个硬币,每个硬币都有自己的面值。 现在你要给n件商品付钱,每件商品也有自己的价格。 然而老板是个奸商,他绝对不会给你找钱。 你每次付钱只能用一个硬币,但是你可以一次性买很多商品。 问你最后最多还能留下多少钱。 思路: 状压DP。 f[i]表示状态为i时能买的商品数,i 阅读全文
posted @ 2017-10-27 15:17 skylee03 阅读(90) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 给你一个m*n的01矩阵,请你搞一些破坏。 你可以选择搞坏任意一个数字为1的格子。 如果格子上的数字为0,它本来就是坏的,不用管它。 为了掩人耳目,你搞坏的格子不能直接相邻(即不能有公共边),不包括原来就坏掉的格子。 问有多少种搞破坏的方案。 思路: 状压DP。 f[i][j]表示第i行 阅读全文
posted @ 2017-10-27 13:12 skylee03 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 有一个函数f(n),满足3f(n)*f(2n+1)=f(2n)*(1+3f(n)),f(2n)<6f(n)。 我们用g(t)表示f(i)%k=t的i的个数,其中1<=i<=n。 问对于0<=x<k,所有的g(x)的异或和。 思路: 将函数用递推式表示为: f(2n)=3f(n) f(2n 阅读全文
posted @ 2017-10-27 12:05 skylee03 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 有一排n个格子,要在它们上面装管道。 每个格子上的管道都是T形的,但是可以有三种流动的方向。 每种都是把两个方向的水往另一个方向排出。 如果方向是向左或向右,就是排到相邻的格子里。 特别地,最左边的格子不能向左排水,最右边的格子不能向右排水。 现在每个格子都有一些积水等待排出,问能使所有 阅读全文
posted @ 2017-10-26 20:03 skylee03 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 一个n*m的格子,每个格子上都有一个数。 你可以向下或者向右走,从(1,1)走到(n,m),问方差*(n+m-1)最小的路径是哪个? 思路: 方差*(n+m-1)就相当于给格子里每个数乘上(n+m-1)再求方差。 由于数据范围较小,我们可以直接枚举每个平均数,再求一条方差最小的路径。 不 阅读全文
posted @ 2017-10-26 16:11 skylee03 阅读(124) 评论(0) 推荐(0) 编辑
上一页 1 ··· 49 50 51 52 53 54 55 56 57 ··· 74 下一页