周康禧
周康禧
全部文章
分类
题解(2)
归档
标签
去牛客网
登录
/
注册
周康禧的博客
全部文章
(共70篇)
题解 | 秘藏
dp一下 dp[i][j]表示到i行j列能得到的最多金币数量,那么i行j列可以从i行j-1列跟i^1行j-1列转移,注意一下转移条件就可以了,最后答案给dp[0][n],dp[1][n]取一下max就行了 void solve(){ int n,k; cin>>n>...
2025-12-24
0
10
题解 | 圣
因为第二层循环一定会有a[i]&a[i],每次tp算出来的就是a[i],OR取并集的结果就是本身,所以就是求一下这n个数XOR的结果就可以了 void solve(){ int n; cin>>n; int a[n+1]; int ans=0; ...
2025-12-23
1
14
题解 | 小猫排队
倒着算出每一个可以换的位置是第几分钟,然后如果在这个位置的离开之前就可以换到这个位置,就是取这个位置下标,如果大于这个位置的离开时间,那么换过来的时候已经不存在这个位置了,ans初始化n+1,因为可能所有的a[i]都不能交换 void solve(){ int n; cin>&...
2025-12-22
2
11
题解 | 排座椅
对行列横竖分别考虑,因为不会相互影响,因为要最小化,所以考虑贪心,按每次设计走廊分隔的个数排序然后记录一下下标排序输出就可以了 struct R{ int x; int id; }; bool cmp(R a,R b){ return a.x>b.x; } void s...
2025-12-21
3
16
题解 | 至
两个人的最短路相同,因为只有两行,那么要么在同一个位置,要么刚好错开在不同的行,因为第一行到第二行(2,n)会比第二行的多一步,所以有一种就是(x1!=x2&&y1==y2+1) 然后另一种就是 让下面的右边防障碍,让它往上多一步,那么第一行的就在这个左边就行了(x1!=x2&...
2025-12-20
1
11
题解 | 【模板】整数域二分
二分一下就行了 void solve(){ int n,q; cin>>n>>q; int a[n+1]; for(int i=1;i<=n;i++){ cin>>a[i]; } sort(a+...
2025-12-19
1
13
题解 | 01串题
分类讨论一下 最后要求的长度为x的01序列一定是010101.. 或者10101010.. 这样01相间,而且0和1至少都要有x/2个,那么多余的部分都应该被操作删除了,对于每一次删除是删除两个一样的字符所以把多余的0和1都放在一起就行了,还要保证多余的0和1都是偶数就行了 void solve()...
2025-12-18
3
16
题解 | 剩下的数
注意x的数据范围,r-l+1一定大于等于x,那么就说明在l到r的这个区间中一定具备取模得到0~x-1的完全剩余周期,即每有x个连续的数字就会有一个 取模 0 ,1,2,...,x-1的循环(第一个不一定是0,但是最后集合都是一样的)那么我们考虑如果能全部选就是总和对x取模为0,如果不满足就去掉l到r...
2025-12-17
1
14
题解 | 月月查华华的手机
p[i][j]预处理一下原字符串字符i在j位置后面第一次出现的下标,因为要尽可能选出查询的字符串,所以要每次选最近的,然后查询的时候跳一下对应位置的就行了,如果某一个位置后面没有对应的字符了就是no,反之匹配完毕就是yes #include <bits/stdc++.h> using n...
2025-12-15
1
20
题解 | 【模板】静态区间最值
#include <bits/stdc++.h> using namespace std; using ll = long long int; using ld = long double; using PII=pair<ll,ll>; using PIII=pair<...
2025-12-14
2
18
首页
上一页
1
2
3
4
5
6
7
下一页
末页