import math import os import collections import sys T = int(input()) for _ in range(T): n=int(input()) ux=0 dx=0 uy=0 dy=0 for i in range(n): x,y=map(int,input().split()) ux=max(ux,x) uy=max(uy,y) dx=min(dx,x) dy=min(dy,y) ans=(ux-dx)+(uy-dy) ans*=2 print(ans)B
import math import os import collections import sys T = int(input()) for _ in range(T): n=int(input()) a=list(map(int,input().split())) f=0 pre=[-1]*n suf=[-1]*n for i in range(1,n): pre[i]=max(pre[i-1],a[i-1]) for i in range(n-2,-1,-1): suf[i]=max(suf[i+1],a[i+1]) '''for i in range(1,n-1): print(str(i)+" "+str(pre[i])+" "+str(suf[i]))''' for i in range(1,n-1): if a[i]C这个主要是在[x,2x]之间一定存在一个平方数
比如 0,1,2,3,4,5,6,7,8,9,10
找0-5的一个排列
首先5-10中一定有一个平方数,选择9;5+4=9,4+5=9,因此4,5都被用完了,然后可用的数就是0-3
再来看>=3的平方数是4,3+1=4,2+2=4,1+3=4;因此,1-3被用完了;
然后剩一个0,0+0也是平方数
python的ceil之前没用过import math import os import collections import sys T = int(input()) for _ in range(T): n=int(input()) res=[0]*n l,r=n-1,n-1 while l>=0: t= math.ceil(r ** .5) ** 2 l=t-r for i in range(l,r+1): res[i]=t-i l-=1 r=l print(*res)