摘要: "uva10857" 题意 兔子希望在平面上 n 个点上放蛋,每个点最多放一个蛋,初始兔子在 (0, 0) 点,这里有无数个蛋,兔子可以回到这个点取蛋,兔子的速度为 $v 2^{ i}$(i 为携带蛋的数量)。对于每个点 (x, y) ,在 $720+x/2000$ 分钟后不能在该点放蛋了。问最多放 阅读全文
posted @ 2017-06-21 13:37 ftae 阅读(239) 评论(0) 推荐(0) 编辑
摘要: "hdu4055" 题意 给出一个长度为 n 1 的字符串,要求构造一个包含数字 [1, n] 的排列,从第二位开始,'I' 表示当前位数字比前一位大,'D' 表示当前位数字比前一位小,'?' 表示可大可小。问有多少满足条件的 n 的排列。 分析 设 dp[i][j] 为 [1, i] 已排列好,最 阅读全文
posted @ 2017-06-21 01:38 ftae 阅读(174) 评论(0) 推荐(0) 编辑
摘要: "Controlled Tournament" 题意 n 名选手进行淘汰赛,R[i][j] = 1 表示 i 能胜过 j。要求通过安排淘汰赛使得,m 选手获得最终胜利,问使得比赛数最少的方案数。 分析 设 f(i, h, S) 表示 i 选手获胜 比赛 h 场 参赛选手集合为 S 的比赛方案有多少种 阅读全文
posted @ 2017-06-20 11:23 ftae 阅读(234) 评论(0) 推荐(0) 编辑
摘要: "hdu3001" 题意 选择从任意一点出发,经过所有点的最小花费(经过每个点的次数不能多于 2 次)。 分析 类似于 "poj3311" 经过每个点的次数有限制,考虑用三进制数存储每个点被访问过的次数,其它和上面一题几乎相同。 code cpp include include include us 阅读全文
posted @ 2017-06-17 13:18 ftae 阅读(196) 评论(0) 推荐(0) 编辑
摘要: "poj3311" 题意 给出一个矩阵,i 行 j 列表示位置 i 到 j 的时间。 求从 0 点出发经过 1 到 n 所有点后并返回 0 点最短耗时。 分析 先用 Floyd 算法,求出两点之间最短路, dp[S][i] 表示访问到 i 这个点时所有点的状态,S 为二进制数,表示这个点是否访问过。 阅读全文
posted @ 2017-06-14 18:06 ftae 阅读(337) 评论(0) 推荐(0) 编辑
摘要: "poj1185" 题意 给出字母矩阵,只能在字母为 P 的位置放置大炮, 如图所示,每个大炮的射程固定,现在要求尽可能多的放大炮,且使得每个大炮都不在其它大炮的射程内。问最多能放多少。 分析 "poj3254" 很类似的一道题,但是注意到这道题,放置一个大炮后,不仅影响到与之相邻的下一行,同时对下 阅读全文
posted @ 2017-06-14 15:22 ftae 阅读(268) 评论(0) 推荐(0) 编辑
摘要: "poj3254" 题意 给出一个01矩阵,1表示当前这个位置可以放牛,要求放牛的方案保证牛不能左右或上下相邻,求方案数。 分析 dp[S][i]: 表示到 i 行时的状态S(用二进制数表示),那么状态转移就是 dp[S][i] += dp[S0][i 1] ,其中 S 为当前行合法状态,S0为上一 阅读全文
posted @ 2017-06-14 09:36 ftae 阅读(228) 评论(0) 推荐(0) 编辑
摘要: "hdu3507" 题意 给出 N 个数字,输出的时候可以选择连续的输出,每连续输出一串,它的费用是 这串数字和的平方加上一个常数 M。 分析 斜率优化dp,入门题。 "参考" "参考" 得到 dp 方程后,发现是O(n n)的复杂度,且 n 很大,考虑用斜率优化。 设 s[i] 为 1 到 i 的 阅读全文
posted @ 2017-06-13 16:09 ftae 阅读(381) 评论(0) 推荐(0) 编辑
摘要: 题意 在 N N 的方格棋盘放置了 N 个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上。求出有多少种合法的放置方法。 C++实现(位运算优化) flatmap 函数把产生的新皇后的位置加入到每个已经符合条件的格局(已经摆放好的皇后的状态)中 阅读全文
posted @ 2017-06-13 14:32 ftae 阅读(1241) 评论(0) 推荐(0) 编辑
摘要: "bzoj2440" 题意 求第 k 个不是完全平方数(除 1 以外)的正倍数的数。 分析 利用二分法求解,二分 x ,判断 x 是否是第 k 个数即可,那么我们就要计算 [1, x] 有几个符合条件的数。 首先本题用到容斥原理的思想, sum = 1 的倍数的数的个数 (4, 8, 9, ) 这些 阅读全文
posted @ 2017-06-12 22:51 ftae 阅读(230) 评论(0) 推荐(0) 编辑