银当taki
银当taki
全部文章
题解
归档
标签
去牛客网
登录
/
注册
银当taki的博客
全部文章
/ 题解
(共30篇)
2025暑期第五场
J 二分 多源BFS 切比雪夫距离 01矩阵,最多把一个0变成1,然后每个1每一秒会把曼哈顿距离为1的相邻0变成1,问变成全1的最小时间? 注意到肯定是越早越困难,越晚越容易,答案具有单调性,可以二分变成全1的时间。 从多个源点出发的染色,故check里考虑多源bfs,发现我们从所有1出发bfs,只...
2025-07-30
3
45
2025暑期第三场
D 思维 可以把长度a的连续1变成0,可以把长度a+1的连续0变成1,问最多能得到多少1? 只要有一段长度a的1,我们把他们变成0,然后和两侧的0,肯定可以构成一个长度至少a+1的连续0,然后我们可以把他们再变成1,重复这个操作可以把所有0都变成1 如果开始没有长度a的1,但是有长度a+1的0,可以...
2025-07-23
5
49
2025暑期第二场
A 计数DP 1表示看到白天,0表示看到晚上,-1表示看到不确定。给个序列,问所有把-1变成0或1的方案中,白天天数的和? 首先如果只是求方案数是好求的,但是这里每个方案都有贡献,要求的是所有方案的贡献和。这种一般就维护两个dp数组,一个是贡献和,一个是方案数,方案数正常转移,什么时候能产生贡献了,...
2025-07-23
2
52
2025暑期第一场
2025暑期第一场 G 模拟 数学 给两个01串,问分别从两个位置开始的子串,有多少个子区间完全相同? 注意到这是01串/手玩,可以推出,对于每段相等的最长子区间,长度的话,对答案贡献是 #include <bits/stdc++.h> #define rep(i, a, b) for(...
2025-07-16
4
60
25寒假营第六场(不含G)
A 每次可以选一个子区间,复制其中所有元素,那其实我们可以用这个操作把初始元素变成任意多个,但是我们不能凭空变出来一个元素。那么给出操作后的数组,其中每一段连续相同元素,一定是初始数组中至少一个该种元素操作得来的。因此把每一段连续相同元素缩成一个该种元素,就是最小的初始数组 void solve()...
2025-02-13
1
121
25寒假营第三场 G数论分块
G 求n模i的余数的前k大的和,其中i属于。 首先是一个和整除,求和有关的东西,先想想数论分块。实际上 n模i=n-floor(n/i)*i 然后在整除分块的一个块里是一样的,所以在一个块里,余数是一个等差数列。然后我们要求前k大的余数的和,可以找到第k大的的余数的值,然后对于大于这个值的余数,直接...
2025-01-27
0
97
25寒假营第二场(不含IL)
A 签到 判断一个数列是否由给定元素构成,由于反例很少,可以从反例入手,写的更短 #include<bits/stdc++.h> using namespace std; int main(){ int f=0; for(int i=0;i<7;i++){ ...
2025-01-24
0
111
周赛77
周赛77 B 注意力 注意到我们要求每个长度为9的子数组都出现1-9,那么实际上构造方式只能是选择一个1-9的排列然后一直循环,最后剩下的不到9个也可以利用前面的组成长度为9的排列。 但是注意到这样是不行的,也就是只有剩余不到9个的数里没有重复的才行。这个条件也可以转化为,所有数字中最大出现次数-最...
2025-01-20
1
92
小白月赛96
B 可以把一个区间的数字都变成出现次数较多的元素,问把整个数组变成相同元素,最少操作几次。 首先可以注意到只有01两种元素,那么长度为奇数的数组,01个数一定不等,也就是01一定有一个比另一个更多,可以执行操作变成同一个,因此长度为奇数答案至多为1 长度为偶数时,如果01个数不同,也是一次操作。如果...
2025-01-15
0
130
周赛36
周赛round36 E 构造一张图,让左上角到右下角的最短路不是把所有点都走一遍,也不是长度为n+m-2(一直向下或向右),并且不存在绝对众数(某个字母出现次数大于总数一半) 由于是构造题,不止一种思路。我开始想的是一种比较麻烦的,不过最后也过了。就是类似样例里的那种走法,先一直往下,再一直往右,直...
2024-03-11
0
565
首页
上一页
1
2
3
下一页
末页