DP
Lucius-THU
If you miss the train I'm on
展开
-
BZOJ 1026, Windy数
求区间[A,B]中相邻位数字之差均大于1的元素个数。 数位DP。 第一次写这中类型的DP题,细节处理上还是有很多盲点,花了不少时间来调试。 solve(b+1)-solve(a)相较于solve(b)-solve(a-1)好处在于可以不必单独处理匹配至最后一位的情形。原创 2016-10-11 19:58:08 · 192 阅读 · 0 评论 -
BZOJ 1003, 物流运输
动态规划+最短路。 状态转移方程为f[i]=min(f[j-1]+d[m]*(i-j+1)+k),1≤j≤i≤n。d[m]为每次状态转移计算所得当前可行的最短路花费。原创 2016-10-12 07:48:28 · 557 阅读 · 0 评论 -
BZOJ 1087, 互不侵犯
给定一张大小为N×N的棋盘,要求放置K个棋子,其中,棋子上下左右以及左上、左下、右上和右下八个位置不得有其它棋子存在。求合法方案数。动态规划。 状态数很多,可以先预处理出一行的合法放置方案,再处理出上一行放置的情况下,下一行哪些方案是可行的,于是一行一行转移即可。 运用位运算优化预处理,后来四重循环也能跑得飞快~~~原创 2017-02-10 13:06:30 · 261 阅读 · 0 评论 -
BZOJ 1088, 扫雷
一张大小为N×2的雷图,第一列放有地雷,第二列没有。 给出第二列各方格内的数字(意义如扫雷游戏),试统计第一列地雷有多少种合法的分布情况。动态规划。 只要列出不同雷数之间转移的路径即可根据前后两个的数字进行转移。 注意两端点情况的处理。发现动态规划其实已经把这题想复杂了……只要确定第一列前两个的地雷分布,整列的情况就确定了,再判断合不合法即可。原创 2017-02-10 14:19:43 · 180 阅读 · 0 评论 -
BZOJ 1004, 洗牌
等价类计数问题。 根据Burnside引理,只需统计每种置换不动点的个数后除以置换数即可。 其中,求不动点个数是类似于背包问题的动规,而除法在模意义下需要用扩欧求得逆元。原创 2017-02-11 12:42:08 · 239 阅读 · 0 评论