wu_hehehe 2023-12-09 23:21 采纳率: 0%
浏览 8

3346-最大通过数,python

不知道为什么错,可以帮忙看下吗

img


(正文长度有要求,正文长度有要求。正文长度有要求、正文长度有要求·)

  • 写回答

3条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-12-10 08:12
    关注

    【相关推荐】



    • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7473990
    • 这篇博客你也可以参考下:Python-打印指定范围内的全部回文素数(高教社,《Python编程基础及应用》习题8-7) (10分) 回文素数是指一个数既是素数又是回文数,例如131既是素数又是回文数。
    • 您还可以看一下 jeevan老师的Python量化交易,大操手量化投资系列课程之内功修炼篇课程中的 讲师简介,量化交易介绍及自动化交易演示小节, 巩固相关知识点
    • 除此之外, 这篇博客: python蓝桥杯中的 这个跟上面那个竟然都是python版70分,但是用的方式不一样,可以说是不同的算法,不过我觉得这个用的字典还挺通俗易懂的,而且写得也挺少的。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:

      在这里插入图片描述
      看这一张图,其实是这样的,就是当他本身调用本身时,调用一次,就往更深的函数走,但是如果说最深的这一层走不下去了,就开始返回到上一层,并执行完上一层的下面的内容。当上一层也走到了尽头,就回到他的上一层,阻塞打开,执行完剩下的部分。原来是这样。
      这道题 最重要的就是 先储存树 然后遍历 使用递归(深度优先遍历 dfs)

      #递归 深度搜索真的就很难理解
      def dfs(node,pre):
          global value,table
          for i in table.get(node):
              print(i,node,"..1..")
              if i !=pre:
                  print(i,node,"..2..")
                  dfs(i,node)
                  print(i,node,"..3..")
                  value[node][0]+=max(value[i][0],value[i][1])
                  value[node][1]+=value[i][0]
                  print('value["%d"][0]="%d"'%(node,value[node][0]))
                  print('value["%d"][1]="%d"'%(node,value[node][1]))
      
      global value, table
      n = int(input())
      value = list(map(int, input().split()))
      value = list(map(lambda x:[0,x],value))
      
      print(value)
      value.insert(0,0)
      print(value)
      table = {}
      for i in range(n):
          table.update({i + 1: []})
      print(table)
      #get(键值)
      for i in range(n - 1):
          father, child = list(map(int, input().split()))
          table.get(father).append(child)
          table.get(child).append(father)
      print(table)
      #以上就是树的储存
      
      dfs(1,0)
      print(max(value[1][0],value[1][1]))
      哎呀 这道题是真的很难,但是我还是学到了很多,这就是python的优点,他有列表可以嵌套,还有字典,可以用来储存树,好的。
       我今天好像与理解了更深一点,就是递归,其实。
      
      k=int(input())
      if k>=90:
          print("A")
      if  90>k>=80:
          print("B")
      if 80>k>=70:
          print("C")
      if 70>k>=60:
          print("D")
      
      if k<60:
          print("E")    
      

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 12月9日

悬赏问题

  • ¥15 做数电题要具体的步骤
  • ¥20 PDF元数据中的XMP媒体管理属性
  • ¥15 R语言中lasso回归报错
  • ¥15 网站突然不能访问了,上午还好好的
  • ¥15 有没有dl可以帮弄”我去图书馆”秒选道具和积分
  • ¥15 semrush,SEO,内嵌网站,api
  • ¥15 Stata:为什么reghdfe后的因变量没有被发现识别啊
  • ¥15 振荡电路,ADS仿真
  • ¥15 关于#c语言#的问题,请各位专家解答!
  • ¥15 这个如何解决详细步骤