首页 > 百度9.13 A卷
头像
牛客660603033号
发布于 2022-09-13 21:11 香港
+ 关注

百度9.13 A卷

第一题通关,第二题士兵

通关这个就是双指针+贪心,处理好边界就都AC了,代码比较乱哈
n, m, t = map(int, input().strip().split())
a = list(map(int, input().rstrip().split()))
b = list(map(int, input().rstrip().split()))
res = 0

a1 = []
t1 = 0
for i in range(n):
    t1 += a[i]
    if t1 > t:#超过的就没用了
        break
    a1.append(t1)

b1 = []
t1 = 0
for i in range(m):
    t1 += b[i]
    if t1 > t:
        break
    b1.append(t1)

n = len(a1)
m = len(b1)

i = -1
j = m - 1
at = 0#要考虑完全不用a的情况
while at <= t and i < n:
    while j >= 0 and at + b1[j] > t:
        j -= 1

    res = max(res, (i + 1 + j + 1))
    i += 1
    if i < n:
        at = a1[i]
print(res)

第二题这个我就直接局部排序了,但是把想想肯定也会超时,试了半天优化还不如不优化,求大佬给一份AC代码,我这个A了百分之82
n, m = map(int, input().strip().split())
h = list(map(int, input().strip().split()))
for i in range(m):
    t, k = map(int, input().strip().split())
    if t == 1:
        temp = h[:k]
        temp.sort()
        h[:k] = temp
    else:
        temp = h[:k]
        temp.sort(reverse=True)
        h[:k] = temp
res = map(str, h)
print(' '.join(res))



全部评论

(3) 回帖
加载中...
话题 回帖