Codeforces Round #382 (Div. 2) 继续python作死 含树形DP

时间:2023-03-08 17:26:09
Codeforces Round #382 (Div. 2)  继续python作死  含树形DP

A - Ostap and Grasshopper

zz题能不能跳到  每次只能跳K步 不能跳到# 问能不能T-G  随便跳跳就可以了  第一次居然跳越界0.0  *哦  WA1

n,k = map(int,input().split())
s = input()
i = 0
st = -1
def jump(st):
while(st<n):
st+=k
if(st>=n or s[st]=='#'):
return "NO"
if(s[st]=='T' or s[st]=='G'):
return "YES"
return "NO"
while(i<n):
if(s[i]=='T' or s[i]=='G'):
if(st==-1):
st=i
break
i+=1
print(jump(st))

PY

B - Urbanization

均值之和最大  贪心  最大的放在小部分 我们可以反证  交换任意的人在两个city  会使情况变坏

n,x,y = map(int,input().split())
a = list(map(int,input().split()))
a.sort(reverse = True)
if(x>y):
x,y = (y,x)
cx = 0
cy = 0
m,n = (x,y)
for i in a:
if(x>0):
x-=1
cx+=i
elif(y>0):
y-=1
cy+=i
else:
break
print(cx/m+cy/n)

PY

C - Tennis Championship

相差一场的可以比赛 那么最优的是相隔一次n,n+1 能产生n+2的  所以就是斐波那契了  这题ZZ

n = eval(input())
a = [0]*100
a[0] = 1
a[1] = 2
for i in range(2,100):
a[i]=a[i-1]+a[i-2]
if(a[i]>n):
n = i-1
break
print(n)

PY

D - Taxes

问能分解为质数的最少个数 答案就三种 1 2 3 我们先考虑本身为质数的 ans = 1
 不是质数但是是偶数的 哥德巴赫猜想   ans = 2

不是质数但是是奇数 如果他能有两个质数组成  那么其中一个一定是2 只需要判断n-2 是否为素数即可 ans = 2

否则的话就是ans = 3

然后就AC了...这套题的前四个有点水啊.... 但是还是累计wa3发

import math

n = eval(input())
def isP(n):
lim = int(math.sqrt(n + 0.5))
for i in range(2,lim+1):
if(n%i==0):
return False
return True
ans = 0
if(isP(n)):
ans = 1
elif(n%2==0):
ans = 2
elif(isP(n-2)):
ans = 2
else:
ans = 3
print(ans)

AC代码

E - Ostap and Tree

mk一下 树形DP

F

待补