- 博客(4)
- 收藏
- 关注
原创 1419D2 Sage‘s Birthday
题目:给定含有n个数字的数组(元素可重复),要求重新排序该数组,得到比两边元素都要小的元素的最大个数。思路:先排序,然后对前n/2个元素进行偶数位奇数位的插入,对后n/2个元素进行偶数位插入,然后判断新序列中符合条件的元素的个数n = int(input())a = sorted([*map(int, input().split())])ans = [0] * nans[1::2] = a[:n//2]ans[::2] = a[n//2:]l = 0for i in range(1,n-1.
2020-10-28 10:38:41 106
原创 1428C ABBB
题目:AB 和 BB 可以去掉,问字符串最后的最短长度思路:贪心和栈,出现B,栈中有A就减去一个A,栈中没A就往B栈中加一个B,出现A,就往栈中加入一个A,最后就是栈A中的A的个数+栈B中的个数取余2(查看栈B中个数是否为奇数)for _ in range(int(input())): s = input() ans = 0 a,b = 0,0 for i in s: if i == 'A': a += 1 els.
2020-10-24 11:21:19 432 4
原创 1405C Balanced Bitstring
题目:要你判断所有的a中的 长度为k的子串是否拥有相同数量的1和0思路:a[i]到a[i+k]中的数量与 a[i+1]到a[i + k + 1]中的数量相同,那么需要a[i] == a[i + k],对于所有的位置都需要成立。最后1的总组数 、0的总组数需要不超过 ?的总组数import sysr = sys.stdin.readlinefor _ in range(int(r())): n, k = map(int, r().split()) s = r() x,y = .
2020-10-17 14:49:38 88
原创 1408C Discrete Acceleration(思维+二分)
题目:两辆汽车相隔l 米 相对而行,这段距离内有着n面旗帜,汽车每路过一面旗帜,速度+ 1,a[n]代表第n面旗帜的位置,求它们相遇的时间思路:双指针法,当**(x指针下一个旗帜位置-x指针当前位置)/x指针当前速度 + 总时间** 大于 y指针的同法时,说明y指针可以更快到达下一个加速点,所以先计算y指针的总时间与速度。到达最后一个点的时候,可能会出现,其中一个指针已经走了一段时间的路程的情况,所以要特别处理一下for _ in range(int(input())): n, le = m.
2020-10-17 12:08:14 171
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人