- 博客(6)
- 收藏
- 关注
原创 【cf】D. Backspace
题意: 给出两个字符串s和t,对于s有两种操作,一种是将打印出来,另一种是删除并且不会打印出,问能否通过这两个操作得到t思路:首先我们可以考虑t已经从s中得到了,但是s还有部分需要打印,那么这部分长度一定是偶数,因为删除操作实际上是删除两个字符(一个是上一次打印出来的,另一个是当前要打印的),如果这部分长度不是偶数个,那么至少会多出一个字符。同样的,t中相邻的两个字符在s中需要间隔偶数个字符,否则也会至少多出一个字符。考虑贪心,从s的末尾往左找满足条件的字符。因为要找的满足条件的最后一个字符的.
2022-05-30 18:39:28
339
原创 【补题】运动的球球
思路:对于一个球来说,如果有一个球x比它小,但速度比他快,那么它们一定会相遇,但是如果速度比它慢,那么一定不会相遇,它们之间的最短距离就是没运动的时候的距离,因此考虑将这些球按x轴的顺序排序。排完序后,对于每个球,我们只要看它左边有多少个比它速度慢的球,还要知道这些球在x轴上的距离是多少,题解给的方式是二维的树状数组,这里叫它a[i][j],i表示的是离散化后的速度,j表示两个信息, 当j为0时,表示此时比i速度慢的小球个数, 为1时,表示此时比i速度慢的x轴坐标的总和。代码:#include<.
2022-03-19 09:49:12
195
原创 【cf】C. Factorials and Powers of Two
题意:给你一个数n,让你用k个不同的数来构成n,这k个数的和等于n,并且这k个数中的各个数要么是2的多少次方,要么是某个数的阶乘,题目要求输出最小的k。思路:假如只用2的多少次方来构成n,那么肯定是都能构成的,比如11001,那么就可以用10000,1000,1来组成,因此我们只需要知道满足条件(小于n)的所有阶乘的所有组合方式,然后枚举这些组合方式,如果不等于n,就用2的某某次方来补到n。代码:#include<bits/stdc++.h>using namespace std;
2022-03-10 08:58:21
406
原创 【cf】D. Repetitions Decoding
题意:给出一个长度为n的序列,要求你把这个序列构造成几个两两相连的重复连续的子序列,比如123123就满足题意,123123123不满足题意,可以进行的操作有在某个数后面插入两个相同的数,这个数是任意的。思路:对于任意一串数,都可以构造出这一串数加这一串数倒过来的数,比如123456,对于123,可以在3后面插入一个1,变成123 11 456,然后在1后面插入2,变成123 1221 456,然后在2后面插入3,变成123 123 321 456,对于任意一串数都可以这么构造。官方给的n方的题解,是
2022-03-06 10:25:59
861
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人