以下代码均通过pypy3 ac
按题意模拟即可
n,V=map(int,input().split())
rem,ans=V,1
for v in list(map(int,input().split())):
if rem<v:
rem=V
ans+=1
rem-=v
print(ans)
按照题意模拟即可,需要注意,小数部分为0的要返回PLMM
more,less,equ='Happy birthday to MFGG','Happy birthday to YXGG','PLMM'
a1,a2=input().split()
if a2[0]=='0':
print(equ)
elif a2[0]>'5':
print(more)
elif a2[0]<'5':
print(less)
else:
# 下面判断小数部分首位为5的情况
hasTail=False
for i in range(1,len(a2)):
if a2[i]!='0':
hasTail=True
break
if hasTail:
print(more)
else:
print(more if ord(a1[-1])%2 else less)
首先求出小猫到每个点的最短移动距离;假如小猫和妹妹本来距离不超过r2,那么此时小猫直接去找妹妹,就是刚才求的最短距离,否则再求出mm到达每个点的最短距离(注意妹妹原来所在位置不能超过r1),再遍历网格找到所有距离猫猫r2的点,更新最短距离
from typing import *
from collections import *
move=[[1,0],[-1,0],[0,1],[0,-1]]
def find(grid:List[str],k:str)->List[int]:
for i in range(len(grid)):
for j in range(len(grid[0])):
if grid[i][j]==k:
return [i,j]
def findDis(grid:List[str],p:List[int],maxD:int)->List[List[int]]:
ans=[[-1]*len(grid[0]) for i in range(len(grid))]
ans[p[0]][p[1]]=0
q=deque([p])
while q:
arr=q.popleft()
if ans[arr[0]][arr[1]]>=maxD:
continue
for m in move:
x,y=arr[0]+m[0],arr[1]+m[1]
if x>=0 and x<len(grid) and y>=0 and y<len(grid[0]) and grid[x][y]!='*' and ans[x][y]==-1:
ans[x][y]=ans[arr[0]][arr[1]]+1
q.append([x,y])
return ans
n,m=list(map(int,input().split()))
r1,r2=list(map(int,input().split()))
grid=[]
for i in range(n):
grid.append(input())
pm,pp=find(grid,'M'),find(grid,'P') # P和M的位置
dm=findDis(grid,pm,m*n+1)
if abs(pm[0]-pp[0])+abs(pm[1]-pp[1])<=r2:
print(dm[pp[0]][pp[1]])
else:
dp=findDis(grid,pp,r1)
ans=10**9
for i in range(n):
for j in range(m):
if abs(i-pm[0])+abs(j-pm[1])==r2 and dm[i][j]!=-1 and dp[i][j]!=-1:
ans=min(ans,dm[i][j]+dp[i][j])
print(-1 if ans==10**9 else ans)
只有不同的数字之间才能形成逆序对,那么就需要先把不同的数的所有频次的集合求出来,那么没两种数之间就可以形成一个逆序对,且因为两数大小关系唯一,顺序也就确定,利用排列组合求出两数所在的位置种数,以及其他数的位置种数,相乘后求和
from collections import *
mod=10**9+7
n=int(input())
fac=1
for i in range(1,n-1):
fac=fac*i%mod
count=Counter(input().split())
ans,tot=0,n
for a in count.values():
tot-=a
ans=(ans+a*tot*n*(n-1)//2*fac)%mod
print(ans)