摘要:
状态表示 前 i 行状态为 mask的 合法方案数量 状态转移方程为 其中 状态 j,k 满足条件 j & k = 0, j & ( j <<1) = 0, k & ( k <<1 ) = 0 ,且 J,K状态种植点合法 因为两层间种植的点, 不可以上下相邻 所以有 J&K = 0 因为同层间,种植点不可 两两相邻, 所以有 J & ( J << 1 ) = 0 , K & ( K << 1 ) = 0 再而, 对于当前层, 某些点不可以 种植, 某些可以种植, 因为只有12位, 我们可以映射到一个 阅读全文
摘要:
dp(t,x,y) 表示 t时刻,锤子放到 (x,y) 点,打地鼠最高分 状态方程: dp(t, x, y) = Max { dp(t,x,y),dp(t-1,x1,y1)+ sum(x,y,x1,y1) } 其中 sqrt( (x-x1)^2 + (y-y1)^2 ) <= d, sum(x,y,x1,y1)表示 以 (x,y),(x1,y1)为端点的线段上 地鼠数量 对于 已知两端点 (x1,y1),(x2,y2)的线段,求其线段上 合法点个数,有多种方式: 一, 利用 直线方程来解, 若 x1==x2 或 y1 == y2 斜率不存在的特殊情... 阅读全文
摘要:
因为 除了终点外,中途点 位置 高度皆为 Y[1], 我们可以通过 横坐标唯一确定当前状态 所以 定义状态: DP(I,K) 表示经过 第I栋 Building 移动到 K位置,最小 swap次数 则 转移方程为: 注意到, 因为我们是从 I = 1, 2, 3. ... ,N 顺序处理, dp(k)位置保存着 最优值, 所以第一维 I 我们可以省去 得到转移方程: 对于处理到 第I栋时, 枚举 Xi 到 最大横坐标 ,注意 非法状态的判定, 因为都是顺序处理的,若目前不合法,则后面状态也不合法解题代码View Code #include<stdio.... 阅读全文