AliLexiWalker
AliLexiWalker
全部文章
分类
题解(6)
归档
标签
去牛客网
登录
/
注册
AliLexiWalker
Eason
全部文章
(共26篇)
题解 | #小红的图上加边#
先把原图里本来就连在一起的点分成几团,每一团只记住团内最大的点权。 接下来要把这些团连成一个大团,最省钱的做法就是让最大点权那一团当中心,把其他团一个个接过来。这样总花费就是所有团最大点权加起来,再减去最大的那个。 void solve(){ int n,m;cin>>n>...
2026-04-10
4
9
题解 | #抽卡#
先算全没中,再用一减掉。 每个池子没中是 ,全乘后取模就行。 void solve(){ int n;cin>>n; vll a(n),b(n); for(int i=0;i<n;++i)cin>>a[i]; for(int i=0;i&...
2026-04-08
4
13
题解 | #小苯的麦克斯#
这题其实不用看整段区间,只要看相邻两个数就够了,因为想让区间里的最大值尽量大,最后只会落到某一对相邻元素上。 于是直接枚举每一对相邻数,算出这两个数的 mex,再取“max−mex”的最大值,答案就是这样。 void solve(){ int n;cin>>n; vi a...
2026-04-06
4
22
题解 | #Kevin喜欢零(困难版本)#
一看到“末尾有几个 ”,就能想到只和因子 有关,子段答案就是 然后套路是把“恰好 ”改成“至少 减至少 ”,前缀和配双指针线性统计就行。 void solve(){ int n;ll k;cin>>n>>k; vi a(n+1); for(int...
2026-04-05
3
21
题解 | #树上行走#
核心思路:你一进某个点,就只会保留和它同类型的点,所以你最终能活动的范围,其实就是“同类型点构成的子图里,你所在连通块的大小”。 做法很直接:在原树上按类型分开跑连通块(0 和 1 各自连),算出每个点所属连通块大小,取最大值,把所有块大小等于最大值的点输出即可。 void solve(){ ...
2026-04-04
2
18
题解 | 牛客2026年愚人节比赛-EFG
E-我数呢 首先,这题大意就是输出一个最小的三位回文数,且三个数位上的数加和为十,所以直接输出181即可; 其次,这题还藏了一个ABA在题面中: ① ...
C++
Python3
pypy3
愚人节
2026-04-01
6
58
题解 | #冥古之潮#
先从 x 做一遍 BFS,把每个点到 x 的距离分层统计成 c[d];题目要求锚点距离严格递增,其实就是“每一层最多选 1 个点”。 所以答案就是从这些层里选 k 层、每层选一个点的方案数:做个 0/1 背包 DP,遇到第 d 层就把 f[j] 转移到 f[j+1] 并乘 c[d],最后 f[k] ...
2026-04-01
4
24
题解 | #最大最小路#
好路径的条件是“既要有小于等于 a 的点,又要有大于等于 b 的点”,那就把不好的先删掉:要么整条路都 >a,要么整条路都 <b。 所以答案=总路径数-两种坏路径,再把重复减掉的“整条路都在 (a,b) 里”加回去;而“某种条件下的路径数”在树上就是把符合条件的点分连通块,每块贡献 sz...
2026-03-31
8
30
题解 | #小苯的ovo2.0#
ovo 的中间一定是个 v,那就别纠结整串,盯着每个 v 看它能配出多少组。 如果最后一共放了 k 个 o,当前前面已经有 j 个 o,那这个位置放 v 的贡献就直接是 j*(k-j);所以做个 DP,边走边决定这位放 o 还是 v,把贡献最大化。 void solve(){ string ...
2026-03-30
17
37
题解 | #喝可乐#
这题就把“空瓶换可乐”当成状态转移:先枚举初始买了多少瓶蜂蜜(剩下是生姜),然后一直兑换到不能换为止,取能喝最多的方案。 为了快一点,每次不是换一瓶,而是同一种能换多少就一次性全换,这样循环次数很少,整体基本就是 O(n)。 void solve(){ int n,a,b;cin>>n...
2026-03-29
3
39
首页
上一页
1
2
3
下一页
末页