摘要: 传送门: "洛谷 P1043 数字游戏" 算法分析: 首先,这张图是一个环的形式,题目大意是要对任意一段求和,故使用前缀和算法,并将数据重复储存来把环破开成链。 其次,这道题用区间DP,以最大值为例: 设 $dp[i][j][t]$ 为从 $i$ 到 $j$ 中分为 $t$ 部分所得的最大价值,则 阅读全文
posted @ 2019-02-10 16:03 常青藤的花语 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 传送门: "洛谷 P2347 砝码称重" 题目描述: 设有$1g$、$2g$、$3g$、$5g$、$10g$、$20g$的砝码各若干枚(其总重$\leq1000$),求用这些砝码能称出的不同重量的个数。 算法分析:两重循环枚举所用砝码 时间复杂度 $O(maxT\times maxM \times 阅读全文
posted @ 2019-02-10 16:03 常青藤的花语 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 传送门: "洛谷 P1044 栈" 算法分析:卡特兰数(传送门: "卡特兰数" ) $$C_n=C_0\times C_{n 1}+C_1\times C_{n 2}+…+C_{n 1}\times C_0$$ 时间复杂度 $O(n^2)$ cpp include include using nam 阅读全文
posted @ 2019-02-10 16:02 常青藤的花语 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 传送门: "CF141B Hopscotch" 算法分析: 1. 判断是否在边界上($a|y$),是否在第一、二象限($y 0$) 2. 接着,判断 $y$ 是否比 $a$ 小,$x$是否在第一个正方形内 3. 将$y$减去$a$(删去第一层),$dir=\frac{y}{2a}+1$ 表示其所在的 阅读全文
posted @ 2019-02-10 16:01 常青藤的花语 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 传送门: "洛谷 P1006 传纸条" 算法分析: 首先想到两张纸条同时传,则是四维DP,转移方程如下: $$dp[i][j][l][r]=max\{dp[i 1][j][l 1][r],dp[i 1][j][l][r 1],dp[i][j 1][l 1][r],dp[i][j 1][l][r 1] 阅读全文
posted @ 2019-02-10 16:00 常青藤的花语 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 传送门: "洛谷 P3146 248" 算法分析: 设 $f[i][j]$ 为合并 $i j$ 位的最大数字,那么满足 $f[i][k 1]==f[k][j]$ (即判断前一段的值能否和后一段的再次合并)时,$f[i][j]=max(f[i][j],f[i][k 1]+1)$(合并后的值$+1$), 阅读全文
posted @ 2019-02-10 15:59 常青藤的花语 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 传送门: "洛谷 P1018 乘积最大" 算法分析: 首先,算法主体为区间DP,设 $f[i][j]$ 为在中分i个乘号的最大结果 则 $f[i][j]=max\{f[i][j],f[i 1][t]\times a[t+1][j]\}$ 其中 $i\in[1,k]$ , $j\in[i+1,n]$ 阅读全文
posted @ 2019-02-10 15:58 常青藤的花语 阅读(407) 评论(0) 推荐(0) 编辑
摘要: 传送门: "洛谷 P1725 琪露诺" 算法分析: 设 $dp[i]$ 为走到i位置的最大价值,则 $dp[i]=max(dp[i],dp[i j]+a[i])$ , 其中$i\in[l,n]$,$j\in[l,r]$ 最后答案即为 $max\{dp[i]\}$,其中$i\in[n r+1,n]$ 阅读全文
posted @ 2019-02-10 15:57 常青藤的花语 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 传送门: "洛谷 P1704 寻找最优美做题曲线" 算法分析: 这道题运用的是最长上升子序列,先对 $p$ 数组进行排序,然后在数组中查询一遍,剔除不满足 $c[p[i]]时间复杂度:$O(2nlog_n+n^2) $ cpp include include include include usin 阅读全文
posted @ 2019-02-10 15:56 常青藤的花语 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 传送门: "洛谷 P3147 262144" 算法分析: 减弱版详见 "洛谷 P3146 248" 本题为P3146的加强版,数据范围 $2\leq n \leq 262144$ , 原题数据范围为 $2\leq n \leq 248$ ,若沿用原方法,会得到 $O(n^2)$ 的时间复杂度,必定超 阅读全文
posted @ 2019-02-10 15:55 常青藤的花语 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 传送门: "洛谷 P2258 子矩阵" 算法分析: 本题要求某个子矩阵,则有两个变量:所选的 $l$ 和 $r$ 考虑用 $DFS$ (全排列)和 $DP$ 来解决本题 先生成行的全排列,接着就可以得到 $r\times m$ 的矩阵,用区间$DP$处理一遍即可 cpp include includ 阅读全文
posted @ 2019-02-10 15:54 常青藤的花语 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 传送门: "洛谷 P2422 良好的感觉" 算法分析: 本题可考虑贪心做法,每次枚举某一区间最小值,那么当最小值固定时,一定是满足最小值的最长区间最优,即从当前位置向两边寻找,一直到不是最小为止。理论时间复杂度为$O(n^2)$,但考虑到查找过程中的剪枝,$n=100000$ 的数据还是轻松通过了$ 阅读全文
posted @ 2019-02-10 15:54 常青藤的花语 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 传送门: "洛谷 P1156 垃圾陷阱" 算法分析: $dp[i][j]$ 表示吃了第 $i$ 个垃圾后到 $j$ 高度的最大生命值,则先判断能否活下来,如能,判断有没有跳出陷阱;若没有,就分两种情况:上升或活命。如果跳不出,就贪心求最大高度 cpp include include include 阅读全文
posted @ 2019-02-10 15:53 常青藤的花语 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 传送门: "洛谷 P1005 矩阵取数游戏" 算法分析: 每次取数时须从每行各取走一个元素,共 $n$ 个。经过 $m$ 次后取完矩阵内所有元素; 每次取数都有一个得分值,为每行取数的得分之和,每行取数的得分$=$被取走的元素值$\times 2^i$,其中 $i$ 表示第 $i$ 次取数(从$1$ 阅读全文
posted @ 2019-02-10 15:52 常青藤的花语 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 传送门: "洛谷 P3957 跳房子" 算法分析:由特殊到一般 $Section\ A$ 首先考虑:若 $g=0$ 时的动态规划 不难发现,当前这个格子 $x$ 一定是从 $x d$ 跳来的 $Section\ B$ 其次考虑:$g$ 改变时的动态规划 不难发现,当前这个格子 $x$ 一定是从 $x 阅读全文
posted @ 2019-02-10 15:51 常青藤的花语 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 传送门: "洛谷 P1314 聪明的质监员" 算法分析: 调整参数$W$的值,让检验结果尽可能的靠近标准值$S$,即使得$|S Y|$最小。请你帮忙求出这个最小值。 其中 $Y_i=\sum_j1\times\sum_jv_j, j\in[L_i,R_i] \ \cap \ w_j\geq W$ 不 阅读全文
posted @ 2019-02-10 15:50 常青藤的花语 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 传送门: "CF729C Road to Cinema" 算法分析:到达终点的最小时间单调递增,即钱越多,时间越短,考虑二分,关键在于判断油箱剩余油量的操作 阅读全文
posted @ 2019-02-10 15:49 常青藤的花语 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 传送门: "洛谷 P1558 色板游戏" 算法分析:观察到数据范围:$1\leq T\leq 30$ ,考虑使用二进制来进行状态压缩 将颜色$x$表示为 $1 include define maxN 100010 define ls k 1) using namespace std; typedef 阅读全文
posted @ 2019-02-10 15:48 常青藤的花语 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 传送门: "洛谷 P1471 方差" 算法分析:本题重在对方差的维护,平均值只要维护区间和 $\bar{x}=\frac{\sum^n_{i=1}x_i}{n}$ $s^2=\frac{\sum^n_{i=1}(x_i \bar{x})^2}{n}$ $\ \ \ \ =\frac{\sum^n_{ 阅读全文
posted @ 2019-02-10 10:59 常青藤的花语 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 传送门: "洛谷 P2574 XOR的艺术" 重题: "洛谷 P2846 光开关" 、 "洛谷 P3870 开关" 算法分析:对懒标记 $v[k]$ 取 $xor$,且$[l,r]$中1的个数取反后即是之后数列中$0$的个数 cpp include include define maxN 20001 阅读全文
posted @ 2019-02-10 10:58 常青藤的花语 阅读(135) 评论(0) 推荐(0) 编辑

知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。