- 博客(47)
- 收藏
- 关注
原创 XYXXYY
思路 经过手动模拟发现 B和C之间满足 |B-C|<=1;另外如果B==0&&C==0。A 代表 XX B 代表XY C代表 YX D代表YY。满足 N - 1 = A + B + C + D;如果满足以上条件则输出YES 否则输出NO。给出一串由XY组成的字符 N。给5个数 N A B C D。则A和D必有一个也为0。
2023-03-22 21:08:17
281
原创 ABC166E This Message Will Self-Destruct in 5s 题解
给出数组,从数组中找到满足 q [ i ] + q [ j ] = j - i 的 i 和 j。思路: 转换之后就变成 q[i]+i=j-q[j] 用map存储。
2023-03-22 20:59:01
244
原创 求区间和(前缀和)
思路:看到区间和,想到前缀和。用数组sum存储前缀和,那么区间[l,r]的和为sum[r]-sum[l-1];然后用map存储答案出现的次数;注意:如果区间只有一个数,并且值为所求的数也是合理答案所以mp[0]=1;题意:先给两个数n,k。n代表数组长度,k代表所求区间和。然后下一行给出n个数。求有几个区间和等于k。
2023-03-22 20:47:28
190
原创 高精度加减法
给定两个正整数(不含前导 0),计算它们的差,计算结果可能为负数。给定两个正整数(不含前导 0),计算它们的和。共两行,每行包含一个整数。1≤整数长度≤100000。共两行,每行包含一个整数。共一行,包含所求的和。共一行,包含所求的差。跟加法差不多,注意进位。1≤整数长度≤1e5。
2023-03-14 20:58:38
112
原创 求逆序对数量
首先解释一下什么是逆序数,在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序。一个排列中逆序的总数就称为这个排列的逆序数。3.两个数一个在左半边,一个在右半边。3. 算一个左一个右的;4. 把他们加到到一起。运用了归并排序和递归。1.两个数都在左半边。2.两个数都在右半边。1. 递归算左边的;2. 递归算右边的;
2023-03-14 15:17:05
244
原创 acwing 3956 截断数组
分成3份,那么总和sum一定可以被3整除,然后找到一个等于总和2/3的地方,那么结果就是在前面段和为总和1/3的个数。
2023-03-13 17:16:31
119
原创 cf1475E Advertising Agency(求组合数)
Masha认为,所有的博主都有不同的追随者(也就是说,没有追随者会关注两个不同的博主)。例如,如果n=4, k=3, a=[1,3,1,2] 那么Masha有两种方法来选择3个具有最大总关注者数量的博主。每个测试案例的第一行包含两个整数n和k (1≤k≤n≤1000)--博主的数量和你能与多少个博主签订合同。每个测试用例的第二行包含 n 个整数a1,a2,...an (1≤ai≤n)--每个博主的追随者数量。对于每个测试案例,在单独的一行中输出一个整数--选择 k 个博主,从而使其追随者的总数达到最大。
2023-03-13 17:05:04
164
原创 二分例题附模板
2.当我们将区间[l, r]划分成[l, mid - 1]和[mid, r]时,其更新操作是r = mid - 1或者l = mid;,此时为了防止死循环,计算mid时需要加1。1.当我们将区间[l, r]划分成[l, mid]和[mid + 1, r]时,其更新操作是r = mid或者l = mid + 1;,计算mid时不需要加1。题意就是在这个数列中,找出这个数出现的起始位置跟终止位置。
2023-03-09 21:34:14
117
原创 12.29打卡
给定一个长度为n的序列,定义 c(l,r)为 l 到 r 之间不同的序列的个数,确定一组 l,r 使得 l-r-c(l,r) 的值最大。
2022-12-29 12:19:03
192
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人