首页 > TAG信息列表 > 保卫

P5024 [NOIP2018 提高组] 保卫王国

传送门 思路 如果没有强制,那就是一个简单的树形DP,我们用 \(f[i][0/1]\) 表示 \(i\) 的子树内,\(i\) 选或不选的最小代价;用 \(g[i][0/1]\) 表示整个树减去 \(i\) 的子树,\(i\) 选或不选单最小代价。这类似于换根DP 有了强制,说明我们的DP有一些状态不可取,虽然我们不能退回去再做一次D

P5024 [NOIP2018 提高组] 保卫王国

思路: 首先想到每次询问两个点后就从这两个点开始往上爬,沿路更新 dp 值即可。 #include <bits/stdc++.h> #define For(i,a,b) for(int i=a;i<=b;i++) #define Rev(i,a,b) for(int i=a;i>=b;i--) #define clr(a,v) memset(a,v,sizeof(a)) #define Freopen(file) \ freopen(file".in

[NOIP2018 提高组] 保卫王国

[NOIP2018 提高组] 保卫王国 深受启发的题解; DP的集大成者。 倍增做法:\(O((n+m)\ log\ n)\) 首先,这道题最原始的问题就是经典的最大独立集问题。没有上司的舞会。 我们考虑DP:设\(dp(u,0)\)代表节点\(u\)没被选上,\(dp(u,1)\)代表结点\(u\)被选上,然后转移。 时间复杂度为\(O(n)\)

Scratch(十七):保卫萝卜

哈喽,大家好。今天给大家展示的Scratch小游戏是保卫萝卜,下面我们一起看一下效果吧。   Scratch小游戏之保卫萝卜 今天这个游戏的难度是比较高度,游戏的整个设置首先主要是通过一个小方块设置妖怪的位置移动,接着就是萝卜的生命值设置,还有变速的设置等。感兴趣自己需要

【洛谷】P5024 保卫王国

前言   传送门   很多人写了题解了,我就懒得写了,推荐一篇博客   那就分享一下我的理解吧(说得好像有人看一样   对于每个点都只有选与不选两种情况,所以直接用倍增预处理出来两种情况的子树之内,子树之外的最值,最终答案以拼凑的方式得出   如果这个题要修改权值的话就真的只能

保卫农场

题目描述 Farmer John的农夫上有很多小山丘,他想要在那里布置一些保镖(......)去保卫他的那些相当值钱的奶牛们。 他想知道如果在一座小山丘上布置一名保镖的话,他总共需要招聘多少名保镖。他现在手头有一个用数字矩阵来表示地形的地图。这个矩阵有N行(1<N≤100)和M列(1<M≤70)。矩阵中的每个

[NOIP2018]保卫王国

[Luogu5024] 感谢包爷的帮助 细节详见代码 #include<cstdio> #include<iostream> #include<cstring> #include<algorithm> #define debug(...) fprintf(stderr,__VA_ARGS__) #define Debug(x) cout<<#x<<"="<<x<<endl #define i

[NOIP2018]保卫王国

嘟嘟嘟 由于一些知道的人所知道的,不知道的人所不知道的原因,我来发NOIP2018day2T3的题解了。 (好像我只是个搬运工……) 这题真可以叫做NOIplus了,跟其他几道比较水的题果然不一样,无论代码量还是思维难度都有一个更高的层次。 我是看了zhoutb的题解的。而且抄了他代码(还没抄对),所以这