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

待补

posted @ 2016-12-11 00:42  zxMrlc  阅读(291)  评论(0编辑  收藏  举报