- 博客(10)
- 收藏
- 关注
原创 Codeforces Round 913 (Div. 3)A-E题解
思路:很抽象的一道题... 统计出现次数最多的字母 如果该字母出现次数大于n/2则可以证明该字母一定不会被删除完 还会剩下的字母个数就是答案。如果该字母出现次数小于等于n/2则可以证明该字母一定会被删完,并且一定有一种方案可以把剩下的字母个数变成0或者1。思路:直接二分答案。一开始的区间l=0,r=0。思路:用两个栈分别存储大小写字母的下标记,如果遇到B和b判断栈是否为空。思路:如果a+b+c有进位的话 数位和就会减9 显然不等于n的数位和 所以可以提前处理每个数字有几种方式并且运用乘法原理计算出答案。
2024-10-27 22:16:03
335
原创 Codeforces Round 950 (Div3) A-E题解
所以只考虑两端下降和一段下降即可。第二种思路:用两个bool数组 如果删掉数字 a[l]就必须保证flag[l-1]和flag1[l+1]是true flag[l-1]是true代表gcd序列(1,l-1)是递增的 flag1[l+1]是true代表gcd序列种(l+1,r)是递增的 最后考虑新得到的数字gcd(l-1,l+1)是否能插入到原来gcd序列中即可。思路:我们只需要修改b数组和a数组中不一样的元素即可 把不一样的元素用temp记录一下 可以理解为你现在需要temp中数字 但是你只有d数组中数。
2024-10-24 10:39:48
360
原创 AtCoder Beginner Contest 358 (A-D)
D:在A序列中找出每个B序列中的数所对应的大于等于它的第一个数。lower_bound函数是找出第一个大于等于它的数的指针。upper_bound函数是找出第一个大于它的数的指针。multiset是一种支持在logn 的时间内完成插入 / 删除 / 查询,以权值为下标的数据结构并且支持重复数字(类似权值线段树)。B:每个人所需购票所需时间相等,如果前面没有人的话可以直接买,如果前面有人排队的话需要等前面的人买完再买,计算每个人购完票的时间。A:给定两个字符串,判断给定的两个字符串与题目给定的是否相等。
2024-09-21 11:08:00
418
原创 Codeforces Round 964 (Div4) A-E题解
题解:这里好像并不是四舍五入向下取整而是直接向下取整 最好要把所有数字都变成0 显然是只有y/3这个操作可以 所以我们要把最小的一个数先变成0 这样后续每次进行3x操作时就选0这个数字不会使其他数字变大。题意:说一天有m分钟 而亚历克斯有n个任务 给出每个任务的起始时间和结束时间且没有任务会时间重叠。题意:有两个人 a和b 每人有两张卡牌 每次都翻一张卡牌 谁的卡牌大谁获胜一小局 1:0或者2:0获胜 因此有6种情况 最后答案乘以2 因为每一大局中两小局可以交换位置。题解:根据题意直接写就好了。
2024-08-08 09:49:25
459
原创 基础数据结构——初级——链表
使用链表时,可以用STL的list,也可以自己写链表。如果自己写代码实现链表,有两种编码实现方法:动态链表和静态链表。在算法竞赛中为加快编码速度,一般用静态链表或者STL的list。所以接下来只为大家讲解这两种。链表的特点是一组位于任意位置的存储单元存储线性表的数据元素。一般分为单向链表和双向链表(如下图所示)。第三种方法:STL list。list是双向链表,通过指针访问节点数据,高效率的删除和插入。第一种方法:用结构体数组实现双向静态链表。第二种方法:用一维数组实现单向链表。以经典的约瑟夫问题讲解。
2024-07-18 12:00:13
443
原创 基础算法 冒泡排序的变形
思路:乍一看没什么思路,但只要提取题目中关键信息(如果把桥旋转180°,则两级车厢的位置交换),仔细一下这不就是冒泡排序的交换过程吗。只不过需要记录交换了多少次。
2024-07-17 14:53:30
212
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人