type
status
date
slug
summary
tags
category
icon
password
Email
文章首发于我的个人博客:欢迎大佬们来逛逛
A
直接 + 或者 - 模拟即可。
B
分别计算
偶数的总和
和奇数的总和
,然后比较偶数的和是否严格大于奇数的和即可。C
题目要求把由 26 个字母组成的字符串转换为 01 串,要求统一个字母对应的 0或者1的情况是唯一的。
也就是说如果字母a第一次出现,并且对应一个0或者1,则后面所有的a都是与之对应的。
利用哈希表可以维护某个字母对应的0或者1 ,也可以使用array<int,26>来模拟。
并且维护一个随着每个位置变换的pre,每次pre^=1,并且把这个pre映射到当前字母所在的哈希表中,如果往后到某个字符出现在哈希表中,但是其对应的字母却与pre不一致,则说明一定无法构成01串。
D
题目要求是有几个询问,然后给出 l,r,num,让我们把
[l,r]的数字都改为num
,然后计算整个序列中所有元素之和。利用前缀和presum维护即可。
则每次的更新就是 di
E
交互题,直接跳过
F
题目要求:一个小球在地图上移动,每次碰到墙壁都会反弹,每次碰到角落都会逆着往回走,给定一个终点,询问经过几次碰撞可以到达这个终点。
小球一共可以移动 4*n*m 个
状态
,因此我们建立一个这样的数组,并且对方向进行一个合适的判断,例如我们分别设:DL UL DR UR 为 0,1,2,3 这样我们就可以方便的进行如下的更新:
- 四个边界的判定,记录碰壁的次数。
- 移动的过程中小球的位置更新。
并且每次移动我们都记录这个位置的状态被保存过,如果第二次访问过了这个状态,则说明是回路。
如果我们到达了终点,则输出碰壁的次数。
G1, G2
题目要求:给你一个目标数组,问你是否能只通过一个原始{1} a数组来合成,合成的原因是a数组的子序列和可以作为新的元素插入。
我们给
目标数组
进行排序,如果它的某位置元素大于这个位置之前的所有元素之和,则表示这个元素无论如何也不可能得到,它后面的元素更不要说了。因此排序后记录前缀和然后依次比较即可。
- 作者:Yuleo
- 链接:https://www.helloylh.com/article/cf859
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。