洛谷P2196 挖地雷(dp)】的更多相关文章

题意 题目链接 Sol 早年NOIP的题锅好多啊.. 这题连有向边还是无向边都没说(害的我wa了一遍) 直接\(f[i]\)表示到第\(i\)个点的贡献 转移的时候枚举从哪个点转移而来 然后我就用一个\(n^2\)的算法过了一道\(n \leqslant 20\)的题??.. #include<cstdio> #include<algorithm> #include<vector> using namespace std; const int MAXN = 101; i…
P2196 挖地雷 题目背景 NOIp1996提高组第三题 题目描述 在一个地图上有N个地窖(N<=20),每个地窖中埋有一定数量的地雷.同时,给出地窖之间的连接路径.当地窖及其连接的数据给出之后,某人可以从任一处开始挖地雷,然后可以沿着指出的连接往下挖(仅能选择一条路径),当无连接时挖地雷工作结束.设计一个挖地雷的方案,使某人能挖到最多的地雷. 输入输出格式 输入格式: 输入文件mine.in有若干行. 第1行只有一个数字,表示地窖的个数N. 第2行有N个数,分别表示每个地窖中的地雷个数. 第…
好久没有写博客了,今天水几篇博客 传送门 挖地雷这个题之前在  信息学奥赛一本通  上做过几乎一样的题,但是由于数据太水导致我当时过了,进而导致我昨天(4.28)考试丢了20分,今天写一篇题解 这个挖地雷我们首先要想一个问题(基本人人能想到): 看这个图,如果我们从4出发,假设能挖到10颗雷,那么我们从1或3出发肯定能挖到更多的雷,毕竟你不可能挖到的雷是负数个或者会丢失雷 那么我们就应该从没有入度的点开始,这貌似跟最短路差不多 思路: a: 1.从入度为0的点开始,若能更新它的出边的点则更新,然…
题目背景 NOIp1996提高组第三题 题目描述 在一个地图上有N个地窖(N<=20),每个地窖中埋有一定数量的地雷.同时,给出地窖之间的连接路径.当地窖及其连接的数据给出之后,某人可以从任一处开始挖地雷,然后可以沿着指出的连接往下挖(仅能选择一条路径),当无连接时挖地雷工作结束.设计一个挖地雷的方案,使某人能挖到最多的地雷. 输入输出格式 输入格式: 输入文件mine.in有若干行. 第1行只有一个数字,表示地窖的个数N. 第2行有N个数,分别表示每个地窖中的地雷个数. 第3行至第N+1行表示…
https://www.luogu.org/problem/show?pid=2196 题目背景 NOIp1996提高组第三题 题目描述 在一个地图上有N个地窖(N<=20),每个地窖中埋有一定数量的地雷.同时,给出地窖之间的连接路径.当地窖及其连接的数据给出之后,某人可以从任一处开始挖地雷,然后可以沿着指出的连接往下挖(仅能选择一条路径),当无连接时挖地雷工作结束.设计一个挖地雷的方案,使某人能挖到最多的地雷. 输入输出格式 输入格式: 输入文件mine.in有若干行. 第1行只有一个数字,表…
传送门 解题思路 就是暴力!!! 没什么好说的,总之,就是枚举每一个起点,然后暴力算一遍以这个点为起点的所有路径,在算的过程中,只要比目前找到的答案更优,就有可能是最后的答案,于是就把路径更新一遍,保证不错过正确答案. 由于数据很水<21,所以放心暴力! AC代码 #include<iostream> #include<cstring> using namespace std; ][],maxx[]; ],sans[],now[],ans,nows; void dfs(int…
题目传送门 解题思路: 记忆化搜索,题目比较坑的地方在于,这是个有向图,给的边是单向边!!!!!!!! AC代码: #include<iostream> #include<cstdio> #include<cstring> using namespace std; ],way[],ans = -,en[],ww; ][],vis[]; inline void to(int x) { ;i <= x; i++) en[i] = way[i]; } inline vo…
洛谷-教主的花园-动态规划   题目描述 教主有着一个环形的花园,他想在花园周围均匀地种上n棵树,但是教主花园的土壤很特别,每个位置适合种的树都不一样,一些树可能会因为不适合这个位置的土壤而损失观赏价值. 教主最喜欢3种树,这3种树的高度分别为10,20,30.教主希望这一圈树种得有层次感,所以任何一个位置的树要比它相邻的两棵树的高度都高或者都低,并且在此条件下,教主想要你设计出一套方案,使得观赏价值之和最高. 输入输出格式 输入格式: 输入文件garden.in的第1行为一个正整数n,表示需要…
洛谷10月月赛 2 t2 深海少女与胖头鱼 题目链接 参考资料:洛谷10月赛2讲评ppt; 本篇题解考完那天就开始写,断断续续写到今天才写完 本题作为基础的期望dp题,用来学习期望dp还是很不错的 (说是期望dp,不如说是期望递推?) 另外,本题用到了模意义下的除法变乘法,这也是一个基础但重要的概念 1 算法分析 part 1 我们先来考虑\(m=0\)的情况,也就是说所有的胖头鱼都带有圣盾 \(f[i]\)表示有\(i\)条圣盾胖头鱼时的期望伤害次数,我们先击破一条胖头鱼的圣盾 变成\(i-1…
没看出来动规怎么做,看到n <= 20,直接一波暴搜,过了. #include<cstdio> #include<cstring> #include<algorithm> #define REP(i, a, b) for(int i = (a); i < (b); i++) using namespace std; const int MAXN = 25; int g[MAXN][MAXN], a[MAXN], f[MAXN]; int vis[MAXN],…