首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
洛谷 p6858 深海少女与胖头鱼 洛谷月赛 期望dp
】的更多相关文章
洛谷 p6858 深海少女与胖头鱼 洛谷月赛 期望dp
洛谷10月月赛 2 t2 深海少女与胖头鱼 题目链接 参考资料:洛谷10月赛2讲评ppt; 本篇题解考完那天就开始写,断断续续写到今天才写完 本题作为基础的期望dp题,用来学习期望dp还是很不错的 (说是期望dp,不如说是期望递推?) 另外,本题用到了模意义下的除法变乘法,这也是一个基础但重要的概念 1 算法分析 part 1 我们先来考虑\(m=0\)的情况,也就是说所有的胖头鱼都带有圣盾 \(f[i]\)表示有\(i\)条圣盾胖头鱼时的期望伤害次数,我们先击破一条胖头鱼的圣盾 变成\(i-1…
洛谷 P4012 深海机器人问题【费用流】
题目链接:https://www.luogu.org/problemnew/show/P4012 洛谷 P4012 深海机器人问题 输入输出样例 输入样例#1: 1 1 2 2 1 2 3 4 5 6 7 2 8 10 9 3 2 0 0 2 2 2 输出样例#1: 42 说明 题解:建图方法如下: 对于矩阵中的每个点,向东.向北分别与其相邻点都要连两条边(重边): 1)容量为1,费用为该边价值的边: 2)容量为INF,费用为0的边(因为多个深海机器人可以在同一时间占据同一位置). 对于每个起点…
【洛谷3648/BZOJ3675】[APIO2014]序列分割(斜率优化DP)
题目: 洛谷3648 注:这道题洛谷3648有SPJ,要求输出方案.BZOJ3675数据组数较多但不要求输出方案. 分析: 这可能是我第三次重学斜率优化了--好菜啊 这道题首先一看就是个DP.稍微推一推类似下面这种式子就会发现事实上结果和切的顺序无关 \[a(b+c)+bc=ab+c(a+b)=ab+ac+bc\] 那么就可以用\(f[i][j]\)表示切了\(j\)次,最右一次在\(i\)后面切的最大值.用\(sum[i]\)表示原序列前\(i\)个数之和,那么就有了这个DP方程(假设在\(i…
洛谷P4012 深海机器人问题(费用流)
题目描述 深海资源考察探险队的潜艇将到达深海的海底进行科学考察. 潜艇内有多个深海机器人.潜艇到达深海海底后,深海机器人将离开潜艇向预定目标移动. 深海机器人在移动中还必须沿途采集海底生物标本.沿途生物标本由最先遇到它的深海机器人完成采集. 每条预定路径上的生物标本的价值是已知的,而且生物标本只能被采集一次. 本题限定深海机器人只能从其出发位置沿着向北或向东的方向移动,而且多个深海机器人可以在同一时间占据同一位置. 用一个 P\times QP×Q 网格表示深海机器人的可移动位置.西南角的坐标为…
洛谷P4012 深海机器人问题(费用流)
传送门 图给的好坑……还得倒过来…… 用大佬的图做个示范 我们考虑左图吧 把每一个点向下连边,容量$1$,费用为给出的价值(表示一个机器人可以过去取得标本) 再连一条边,容量$inf$,费用$0$(表示剩下的机器人过去无法取得标本) 然后向右连的边也一样 注意连边的顺序 然后源点向所有出发点连边,容量为机器人数,费用$0$,所有目的地向汇点连边,容量为机器人数,费用为$0$ 跑个最大费用流 //minamoto #include<bits/stdc++.h> #define inf 0x3f3…
洛谷 P4012 深海机器人问题 【最大费用最大流】
和火星那个有点像,但是这个价值直接在路径上,不用拆点,对于每条价值为w的边(i,j),连接(i,j,1,w)(i,j,inf,0),表示价值只能取一次,然后连接源点和所有出发点(s,i,k,0),所有终点和t(i,t,r,0),然后跑最大费用最大流即可. #include<iostream> #include<cstdio> #include<queue> using namespace std; const int N=1000005,inf=1e9; int a,b…
洛谷AT2046 Namori(思维,基环树,树形DP)
洛谷题目传送门 神仙思维题还是要写点东西才好. 树 每次操作把相邻且同色的点反色,直接这样思考会发现状态有很强的后效性,没办法考虑转移. 因为树是二分图,所以我们转化模型:在树的奇数层的所有点上都有一枚棋子,每次可以将棋子移向相邻的空位,目标状态是树的偶数层的所有点上都有棋子. 这样的互换总次数有没有一个下界呢? 我们求出\(a_i\)表示点\(i\)子树中棋子数量与空位数量之差(可以是负数),那么\(i\)的父边就至少要交换\(|a_i|\)次. 为什么呢?子树里面空位比棋子少的话,肯定要通过…
洛谷4859 BZOJ3622 已经没什么好害怕的了(DP,二项式反演)
题目链接: 洛谷 BZOJ 题目大意:有两个长为 $n$ 的序列 $a,b$,问有多少种重排 $b$ 的方式,使得满足 $a_i>b_i$ 的 $i$ 的个数比满足 $a_i<b_i$ 的 $i$ 的个数恰好多 $k$ 个.答案对 $10^9+9$ 取模. $1\le n\le 2000,0\le k\le n$.保证 $a,b$ 中没有相同的数. 首先根据小学数学知识可知,$a_i>b_i$ 的个数应该是 $\frac{n+k}{2}$.如果 $n+k$ 不是偶数那么就无解. 那么就可…
洛谷P4608 [FJOI2016]所有公共子序列问题 【序列自动机 + dp + 高精】
题目链接 洛谷P4608 题解 建个序列自动机后 第一问暴搜 第二问dp + 高精 设\(f[i][j]\)为两个序列自动机分别走到\(i\)和\(j\)节点的方案数,答案就是\(f[0][0]\) 由于空间卡的很紧,高精不仅要压位,还要动态开内存 由于有些状态是没用的,记忆化搜索以减少内存损失 #include<algorithm> #include<iostream> #include<cstring> #include<cstdio> #include…
最小生成树 & 洛谷P3366【模板】最小生成树 & 洛谷P2820 局域网
嗯... 理解生成树的概念: 在一幅图中将所有n个点连接起来的n-1条边所形成的树. 最小生成树: 边权之和最小的生成树. 最小瓶颈生成树: 对于带权图,最大权值最小的生成树. 如何操作? 1.Prim算法(O(mlogn)) 2.Kruskal算法(O(mlogn)) 推荐使用第二种,无需建图. 算法流程: Prim算法:(思想类似dijkstra) 随意选取一个点作为已访问集合的第一个点,并将所有相连的边加入堆中 从堆中找到最小的连接集合内和集合外点的边,将边加入最小生成树中 将集合外点标记…