n=int(input())
for _ in range(n):
x1,y1=map(int,input().split())
x2,y2=map(int,input().split())
x3,y3=map(int,input().split())
x4,y4=map(int,input().split())
if x1==x3:
x2,x3=x3,x2
y2,y3=y3,y2
elif x1==x4:
x2,x4=x4,x2
y2,y4=y4,y2
print(int(abs(y1-y2)*abs(x1-x3)))
找出所有cnt_1=1需要换成0,cnt_0=0需要换成1的个数
如果可以交换,那么两两交换每次可以改变两个位置,一定比操作一次,只改变一个位置好
不能交换时,再进行添加和删除
res=(min(cnt_1,cnt_2)+max(cnt_1,cnt_0)-min(cnt_1,cnt_2))
m=int(input())
for _ in range(m):
n=int(input())
a=list(input())
b=list(input())
cnt_1=0
cnt_0=0
for i in range(n):
if a[i]=='1' and b[i]=='0':
cnt_1+=1
elif a[i]=='0' and b[i]=='1':
cnt_0+=1
print(max(cnt_0,cnt_1))
模拟
m=int(input())
for _ in range(m):
n,f,a,b=map(int,input().split())
s=[0]+list(map(int,input().split()))
x=0
for i in range(1,n+1):
if (s[i]-s[i-1])*a>=b:
f-=b
if f<=0:
x=1
break
else:
f-=(s[i]-s[i-1])*a
if f<=0:
x=1
break
if x==0:print("YES")
else:print("NO")
排序之后,贪心的每次选a最小和b最大,或者a最大或者b最小
对于两个排序好的序列,两个序列中最大的差值一定是取双方序列的两端
即a最小和b最大,或者a最大或者b
from collections import deque
P=int(input())
for _ in range(P):
n,m=map(int,input().split())
a=list(map(int,input().split()))
b=list(map(int,input().split()))
a.sort()
b.sort()
x=deque()
y=deque()
for i in range(n):
x.append(a[i])
for i in range(m):
y.append(b[i])
res=0
while len(x)>0:
if abs(x[0]-y[len(y)-1])>abs(y[0]-x[len(x)-1]):
res+=abs(x[0]-y[len(y)-1])
x.popleft()
y.pop()
else:
res+=abs(y[0]-x[len(x)-1])
y.popleft()
x.pop()
print(res)