ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

蓝桥杯 第二十五天 复杂DP(2)

2022-02-23 21:33:47  阅读:176  来源: 互联网

标签:cur up 蓝桥 range DP ans 第二十五 append d1


目录

1.1226. 包子凑数 - AcWing题库

2.1070. 括号配对 - AcWing题库

3.1078. 旅游规划 - AcWing题库

4.118. 杨辉三角 - 力扣(LeetCode) (leetcode-cn.com)

5.119. 杨辉三角 II - 力扣(LeetCode) (leetcode-cn.com)


1.1226. 包子凑数 - AcWing题库

def gcd(a,b):
    if a<b:
        a,b=b,a
    if b==0:
        return a
    else:
        return gcd(b,a%b)
n=int(input())
N=10001
a=[0]
for i in range(n):
    a.append(int(input()))
a.sort()
flag=False
x=gcd(a[1],a[2])
for i in range(2,n+1):
    x=gcd(x,a[i])
if x!=1:
    print("INF")
else:
    dp=[[False for i in range(N)]for j in range(n+1)]
    for i in range(1,n+1):
        for j in range(N):
            if j==0:
                dp[i][j]=True
            else:
                dp[i][j]=dp[i-1][j]
                if j>=a[i]:
                    dp[i][j]=(dp[i][j] or dp[i][j-a[i]])
    print(dp[-1].count(False))

2.1070. 括号配对 - AcWing题库

注意这个0和1<<31的位置

s=input()
n=len(s)
dp=[[0 for i in range(n)]for j in range(n)]
for len in range(1,n+1):
    for l in range(n):
        r=l+len-1
        if r>=n:
            break
        else:
            if len==1:
                dp[l][r]=1
            else:
                dp[l][r]=1<<31
                for k in range(l,r):
                    dp[l][r]=min(dp[l][r],dp[l][k]+dp[k+1][r])
                if (s[r]==']' and s[l]=='[') or (s[r]==')' and s[l]=='('):
                    dp[l][r]=min(dp[l][r],dp[l+1][r-1])
                dp[l][r]=min(dp[l][r],1+dp[l+1][r],1+dp[l][r-1])
print(dp[0][n-1])

3.1078. 旅游规划 - AcWing题库

def dfs_d(u,father):
    global maxlength
    for i in tree[u]:
        if i !=father:
            dfs_d(i,u)
            d=1+d1[i]
            if d>d1[u]:
                d2[u]=d1[u]
                d1[u]=d
                p1[u]=i
            elif d>d2[u]:
                d2[u]=d
    maxlength=max(maxlength,d1[u]+d2[u])
def dfs_u(u,father):
    for i in tree[u]:
        if i!=father:
            up[i]=up[u]+1
            if p1[u]==i:
                up[i]=max(up[i],d2[u]+1)
            else:
                up[i]=max(up[i],d1[u]+1)
            dfs_u(i,u)

n=int(input())
tree=[[]for i in range(n)]
for i in range(n-1):
    x,y=map(int,input().split())
    tree[x].append(y)
    tree[y].append(x)
maxlength=-1
d1=[-1 for i in range(n)]
d2=[-1 for i in range(n)]
p1=[-1 for i in range(n)]
up=[-1 for i in range(n)]
dfs_d(0,-1)
dfs_u(0,-1)
for i in range(n):
    martix=[d1[i],d2[i],up[i]]
    martix.sort()
    if martix[1]+martix[2]==maxlength:
        print(i)

4.118. 杨辉三角 - 力扣(LeetCode) (leetcode-cn.com)

class Solution:
    def generate(self, numRows: int) -> List[List[int]]:
        ans=[]
        for i in range(numRows):
            if i==0:
                ans.append([1])
            elif i==1:
                ans.append([1,1])
            else:
                cur=[1]
                for j in range(1,i):
                    cur.append(ans[-1][j]+ans[-1][j-1])
                cur.append(1)
                ans.append(cur)
        return ans

5.119. 杨辉三角 II - 力扣(LeetCode) (leetcode-cn.com)

class Solution:
    def getRow(self, rowIndex: int) -> List[int]:
        pre=[]
        cur=[]
        for i in range(rowIndex+1):
            if i==0:
                cur.append(1)
            elif i==1:
                cur.append(1)
                cur.append(1)
            else:
                cur.append(1)
                for j in range(1,i):
                    cur.append(pre[j]+pre[j-1])
                cur.append(1)
            pre=copy.deepcopy(cur)
            cur.clear()
        return pre
            
                

标签:cur,up,蓝桥,range,DP,ans,第二十五,append,d1
来源: https://blog.csdn.net/aixiaoxiao13/article/details/123096660

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有