N, Q = map(int, input().split())
c = [0] * (N + 2) # 用于记录每个位置上的累积字数变化
d = [0] * (N + 2) # 用于记录每个位置上的累积字数
o = [] # 存储活动参数的列表
# 读取并处理活动参数
for _ in range(Q):
l, r, x = map(int, input().split())
o.append((l, r, x))
c[l] += x
c[r + 1] -= x
# 按照规则排序活动
o.sort(key=lambda x: (-x[2], x[0] - x[1]))
ma = 0 # 记录当前累积字数最大的位置
for i in range(1, N + 1):
d[i] = d[i - 1] + c[i]
if d[i] > d[ma]:
ma = i
for i in range(Q):
l, r, x = o[i]
if ma >= l and ma <= r:
c[l] -= x
c[r + 1] += x
break
ans = 0
for i in range(1, N + 1):
d[i] = d[i - 1] + c[i]
ans = max(ans, d[i])
print(ans)
好难,逻辑有点难理清,哭泣
Python位运算符
按位运算符是把数字看作二进制来进行计算的。Python中的按位运算法则如下:
下表中变量 a 为 60,b 为 13,二进制格式如下:
Python逻辑运算符
Python语言支持逻辑运算符,以下假设变量 a 为 10, b为 20:
做题集合1
import os import sys # 请在此输入您的代码 n = int(input()) l = map(int,input().split()) l = list(l) max_l = max(l) min_l = min(l) while max_l in l: l.remove(max_l) while min_l in l: l.remove(min_l) print(sum(l))
做题2——
import os import sys # 请在此输入您的代码 n = int(input()) for i in range(n): a,b = map(int,input().split()) if a > 10 * b: print("YES") else: print("NO")
import os import sys # 请在此输入您的代码 n = int(input()) for i in range(n): a = list(map(int,input().split())) s = a[0] * 4 + a[1] * 2 + a[2] * 0 print(s)
Python 字符串大小写转换
我的错误:
import os import sys # 请在此输入您的代码 n = int(input()) for i in range(n): l = input() for j in l: if j in 'aeiou': l = l.replace(l,l.upper()) if j not in 'AEIOU': l = l.replace(l,l.lower()) print(l)
关于Python结构的问题,即空格与首行缩进的问题:
import os import sys # 请在此输入您的代码 n = int(input()) for i in range(n): l = input() for j in l: if j in 'aeiou': l = l.replace(j,j.upper()) if j not in 'AEIOU': l = l.replace(j,j.lower()) print(l)