随笔分类 -  各种DP

摘要:传送门 显然考虑 $dp$,发现时间只和当前位置和攻击次数有关,设 $F[i][j][k]$ 表示当前位置为 $i,j$ ,攻击了 $k$ 次得到的最大分数 初始 $f[1][1][k]$ 为位置 $1,1$ 能打到的前 $k$ 大位置的分数和 每次移动都会多一行或多一列目标可以选择,攻击时显然优先 阅读全文
posted @ 2019-08-15 10:42 LLTYYC 阅读(266) 评论(0) 推荐(0)
摘要:传送门 挺显然的 $dp$ ,然鹅一开始想的是 $dfs$ 乱剪剪枝搞了 $70$ 分... 设 $f[i][j]$ 表示切了 $i$ 次,当前切的位置为 $j$ 的最小误差 那么转移显然枚举上一个切的位置 $k \in [0,j)$ ,有 $f[i][j]=min(f[i][j],f[i-1][k 阅读全文
posted @ 2019-08-14 10:35 LLTYYC 阅读(165) 评论(0) 推荐(0)
摘要:A. Hotelier 题意:有十个位置初始为 $0$,三种操作,找到左边第一个空位,变成 $1$,找到右边第一个空位,变成 $1$,把某个位置变成 $0$ 直接模拟.. #include<iostream> #include<cstdio> #include<algorithm> #include 阅读全文
posted @ 2019-08-13 00:06 LLTYYC 阅读(220) 评论(1) 推荐(0)
摘要:传送门 感觉正着做不太好搞,考虑倒过来搞 容易想到贪心,每一层都贪心地选最小的宽度,然后发现 $WA$ 了... 因为一开始多选一点有时可以让下一层宽度更小 然后有一个神奇的结论,最高的方案一定有一种是底层最窄的方案 证明: 考虑把所有块按顺序排成一排并分成几段,每一段都表示一层,假设如图是一种底层 阅读全文
posted @ 2019-08-10 13:50 LLTYYC 阅读(161) 评论(0) 推荐(0)
摘要:传送门 可以想到 $dp$,设 $f[i][j]$ 表示当前等级为 $i$,时间为 $j$ 的最大滑雪次数 显然上课不会上让自己等级降低的课,所以第一维 $i$ 满足无后效性 然后直接枚举 $i,j$,对于每个时间 $j$ ,考虑选择滑雪,因为划不同的坡得到的价值都是 $1$,所以直接取当前能划的时 阅读全文
posted @ 2019-08-09 13:42 LLTYYC 阅读(167) 评论(0) 推荐(0)
摘要:传送门 显然可以考虑 $dp$ 设 $f[i]$ 表示当前到了时间 $i$,从初始到 $i$ 的时间都安排好打扫了 把所有牛按照区间 $l,r$ 双关键字排序 这样枚举到一头牛 $x$ 时,在 $x.l$ 之前的牛都考虑完了($x.l$ 是牛 $x$ 的左区间) 然后枚举 $[x.l-1,x.r]$ 阅读全文
posted @ 2019-08-08 18:34 LLTYYC 阅读(186) 评论(0) 推荐(0)
摘要:传送门 可以直接完全背包,复杂度 $O(n \log n)$ 考虑另一种比较神仙的做法 设 $f[i]$ 表示相加为 $i$ 的方案数 考虑某个方案中加的最小的数 当 $i$ 为奇数时,显然加的最小的数一定为 $1$,则 $f[i]=f[i-1]$ 当 $i$ 为偶数时,把加的最小的数分为 $1$ 阅读全文
posted @ 2019-08-08 13:46 LLTYYC 阅读(128) 评论(0) 推荐(0)
摘要:A. Drinks Choosing 有 $n$ 个人,每个人各有一种最喜欢的饮料,但是买饮料的时候只能同一种的两个两个买(两个一对) 学校只打算卖 $\left \lceil \frac{n}{2} \right \rceil$ 对 这意味着有些学生喝不到最喜欢的饮料,求最多有多少学生能喝的最喜欢 阅读全文
posted @ 2019-08-02 18:32 LLTYYC 阅读(171) 评论(0) 推荐(0)
摘要:传送门 看到组合数在模 $2$ 意义下的乘积,考虑用 $lucas$ 定理把组合数拆开 $lucas$ 告诉我们,$C(n,m)$ 在模 $k$ 意义下的值,相当于 $n,m$ 在 $k$ 进制下每一位的组合数分别相乘的积在模 $k$ 意义下的值 就是若 $n=\sum_{i=0}a[i]k^i$, 阅读全文
posted @ 2019-08-01 18:53 LLTYYC 阅读(208) 评论(0) 推荐(0)
摘要:传送门 显然可以列出 $dp$ 方程按时间转移 发现数据 $n$ 很小,$K$ 很大,考虑矩阵快速幂优化转移 但是不同时间的转移似乎不一样 发现题目中单个鱼的移动有周期性,显然整体的移动也有周期性,发现个体的周期只有 $2,3,4$ 所以整体移动的周期最多也只有 $12$,所以考虑把 $12$ 步的 阅读全文
posted @ 2019-07-31 21:04 LLTYYC 阅读(223) 评论(0) 推荐(0)
摘要:传送门 看题目一眼斜率优化,然后写半天调不出来 结果错误的 $dfs$ 有 $95$ 分?暴力 $SPFA$ 就 $AC$ 了? 讲讲正解: 显然是斜率优化的式子: 先不考虑 $q_{s_k}$ 的贡献,设 $f[i]$ 表示当前时间为 $i$ 的最小代价 如果不考虑位置关系,有 $f[p_i]=f 阅读全文
posted @ 2019-07-18 16:14 LLTYYC 阅读(281) 评论(0) 推荐(0)
摘要:传送门 显然可以状态转移: 设 $f[k][x][y]$ 表示第 $k$ 时刻,第一个人在 $x$ ,第二个人在 $y$ 时的概率 那么转移显然: $f[k][x][y]+=\sum_{u}\sum_{v}f[k-1][u][v]*(1-P_u)(1-P_v)/du[u]/du[v]$ 其中 $u$ 阅读全文
posted @ 2019-05-09 12:01 LLTYYC 阅读(219) 评论(0) 推荐(0)
摘要:传送门 $01$规划 $01$规划优质讲解:传送门 考虑先将每一科按 $t/p$ 从小到大排序,枚举每一个 $D$(删除的考试数量) 显然一开始的成绩是 $\frac{\sum_{i=d+1}^nt[i]}{\sum_{i=d+1}^{n}p[i]}$,设它为 $st[D]/sp[D]$ 然后根据$ 阅读全文
posted @ 2019-04-21 21:27 LLTYYC 阅读(310) 评论(0) 推荐(0)
摘要:洛谷传送门 FJOI 日常原题 $2333$(似乎还不如 SDOI2012 任务安排 $2333$) 显然考虑 $dp$,这个是经典的把未来的代价先计算的 $dp$,然后才是斜率优化 一开始想状态时一直有一个时间维,然后就没法优化,考虑如何消掉这个时间维 可以发现,时间只和当前处理到的任务编号,和之 阅读全文
posted @ 2019-04-20 23:00 LLTYYC 阅读(240) 评论(0) 推荐(0)
摘要:传送门 首先有一个显然的贪心,每次操作都要做到底,为了最优不会出现只卖一部分或者只买一部分的操作 所以设 $f[i]$ 表示前 $i$ 天得到的最大价值,那么对于每一个 $i$,枚举所有 $j<i$,意思就是第 $j$ 天全部买入,第 $i$ 天全部卖出 显然如果知道 $f[j]$,那么就知道第 $ 阅读全文
posted @ 2019-04-20 13:36 LLTYYC 阅读(229) 评论(0) 推荐(0)
摘要:传送门 显然考虑 $dp$,设 $f[i]$ 表示前 $i$ 个牧场都被控制的最小代价 那么枚举所有 $j<i$ ,$f[i]=f[j]+val[i][j]+A[i]$ $val[i][j]$ 表示控制站从 $i$ 一直控制到 $j+1$ 需要的代价 考虑怎么算这个东西,设 $S[i]=\sum _ 阅读全文
posted @ 2019-04-18 12:40 LLTYYC 阅读(196) 评论(0) 推荐(0)
摘要:传送门 首先容易证明,得分和切的顺序没有关系 所以直接默认先切左边再切右边就好了 然后显然可以 $dp$ 一开始想的是设 $f[i][j]$ 表示切了 $i$ 次,此次把 $j$ 和 $j+1$ 分开,得到的最大价值 那么显然枚举上一次切的位置 $k$ ,那么 $f[i][j]=f[i-1][k]+ 阅读全文
posted @ 2019-04-17 13:58 LLTYYC 阅读(191) 评论(0) 推荐(0)
摘要:传送门 考虑把总区间长度减去最多能减少的区间长度 把所有区间离散化,对每一小段计算贡献 分类讨论一波,对于边界 $i,i+1$ ,设它们之间距离 $d$,$i$ 属于 $x$ 考察队的边界,$i+1$ 属于 $y$ 考察队的边界: $i$ 为左边界,$i+1$ 为左边界,显然如果给 $x$ 钥匙就可 阅读全文
posted @ 2019-04-08 13:30 LLTYYC 阅读(255) 评论(0) 推荐(0)
摘要:传送门 显然不能直接考虑图长什么样 考虑如何构造一个图,让一个 $B$ 序列尽可能合法 发现对于一些点,如果能让它们先弱联通,(一个节点指向下一个节点,形成一条链) 那么对于最后一个节点,它想缩几个联通块都行,可以证明,这样可以包括所有其他情况形成的 $B$ 序列 感性理解因为这样可以消耗最少的边来 阅读全文
posted @ 2019-04-05 09:56 LLTYYC 阅读(232) 评论(0) 推荐(0)
摘要:传送门 A.The Doors 看懂题目就会写的题 给一个 $01$ 序列,找到最早的位置使得 $0$ 或 $1$ 已经全部出现 #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #include<cm 阅读全文
posted @ 2019-03-31 22:37 LLTYYC 阅读(378) 评论(0) 推荐(0)