首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
牛客NOIP提高组R1 C保护(主席树)
】的更多相关文章
牛客NOIP提高组R1 C保护(主席树)
题意 题目链接 Sol Orz lyq 我们可以把一支军队(u, v)拆分为两个(u, lca)和(v, lca) 考虑一个点x,什么时候军队对它有贡献,肯定是u或v在他的子树内,且lca在他的子树外 因为需要让至少k个军队能够完全覆盖,所以肯定是选深度第k小的 这个过程可以用dfs序+主席树来实现 拿(u, lca)来说,在dfn[u]对应的线段树中,dep[lca]处+1即可. 然后查第k大即可 /**/ #include<cstdio> #include<vector> us…
牛客NOIP提高组R1 A中位数(二分)
题意 题目链接 Sol 很神仙的题目啊,考场上只会$n^2$的暴力.. 考虑直接二分一个$mid$,我们来判断最终答案是否可能大于$x$. 判断的时候记录一下前缀最小值即可, 设$s[i]$表示$1-i$中有多少比它大的,要求的长度为$len$,我们记下$s[i - len]$的最小值为$Mi$ 若$s[i] - Mi > 0$,那么说明在长度至少为$len$的区间中,大于$mid$的数和小于$mid$的数相互抵消后仍然有比$mid$大的数,此时$mid$是合法的 第一次做这种二分答案,但答案不…
牛客NOIP提高组(三)题解
心路历程 预计得分:$30 + 0 + 0 = 30$ 实际得分:$0+0+0= 0$ T1算概率的时候没模爆long long了... A 我敢打赌这不是noip难度... 考虑算一个位置的概率,若想要$k$步把它干掉,那么与他距离为$1$到$k - 1$的点都必须阻塞 且距离为$k$的点至少有一个没被阻塞 概率的处理可以用前缀和优化. 这样看似是$O(n^3 logn)$,但是却不能通过,考虑在前缀和处理的时候有很多没用的状态(超出边界) 加一些剪枝即可 #include<cstdio>…
牛客NOIP普及组R1 C括号(dp)
题意 题目链接 Sol maya普及组的dp都要想很长时间,我真是越来越菜了qwq 设$f[i][j]$表示当前到第$i$个位置,剩下$j$个左括号没被匹配 转移的时候判断一下即可 /* */ #include<cstdio> #include<cstring> #include<algorithm> #include<map> #include<vector> #include<set> #include<queue>…
牛客NOIP提高组(二)题解
心路历程 预计得分:100 + 40 + 30 = 170 实际得分:100 + 30 + 0 = 130 T2有一个部分分的数组没开够RE了. T3好像是思路有点小问题.. 思路没问题,实现的时候一个细节没想过来.. Sol T1 直接把式子化开,发现都可以$O(1)$维护,做完了... #include<cstdio> #include<algorithm> #include<vector> #define LL long long using namespace…
18/9/9牛客网提高组Day1
牛客网提高组Day1 T1 中位数 这好像是主席树??听说过,不会啊... 最后只打了个暴力,可能是n2logn? 只过了前30% qwq #include<algorithm> #include<cstring> #include<cstdio> using namespace std; ; int n, len; int tmp, ans; int a[M]; struct nond { int id, num; }e[M]; bool cmp1(nond x,…
牛客CSP-S提高组赛前集训营1
牛客CSP-S提高组赛前集训营1 比赛链接 官方题解 before:T1观察+结论题,T2树形Dp,可以换根或up&down,T3正解妙,转化为图上问题.题目质量不错,但数据太水了~. A-仓鼠的石子游戏 题目描述 一共n个石子堆,每个石子堆有ai个石子,两人轮流对石子涂色(先手涂红,后手涂蓝),且需要保证当前回合涂的石子颜色不能和它相邻的两个同色,谁涂不下去谁输.一共T个询问,对于每个询问输出先手必胜还是后手必胜. \(1<=n<=10^3,1<=ai<=10^9,1&l…
计蒜客 NOIP 提高组模拟竞赛第一试 补记
计蒜客 NOIP 提高组模拟竞赛第一试 补记 A. 广场车神 题目大意: 一个\(n\times m(n,m\le2000)\)的网格,初始时位于左下角的\((1,1)\)处,终点在右上角的\((n,m)\).每次移动可以选择移动到自己右上方的某一方格,且横坐标和纵坐标的变化都不能超过\(k(k\le2000)\).求一共有多少种移动方案? 思路: \(f[i][j]\)表示走到\((i,j)\)的方案数,一边DP一边维护二维前缀和即可. 时间复杂度\(\mathcal O(nm)\). 源代码…
18/9/16牛客网提高组Day2
牛客网提高组Day2 T1 方差 第一眼看就知道要打暴力啊,然而并没有想到去化简式子... 可能因为昨晚没睡好,今天上午困死 导致暴力打了一个半小时,还不对... #include <algorithm> #include <cstring> #include <cstdio> #include <cmath> using namespace std; typedef long long LL; ; int n, m; double sum; LL a[M]…
牛客网 提高组第8周 T1 染色
染色 链接: https://ac.nowcoder.com/acm/contest/176/A 来源:牛客网 题目描述 \(\tt{fizzydavid}\)和\(\tt{leo}\)有\(n\)个方格排成一排,每个方格初始是白色.\(\tt{fizzydavid}\)有红色染料,\(\tt{leo}\)有蓝色染料.他们共进行了\(m\)次操作,在每次操作中,\(\tt{fizzydavid}\)或者\(\tt{leo}\)会选择若干个(可以是零个)连续相邻的方格并用自己的染料给这些格子染色.…