当前位置:   article > 正文

Python 描述 2021 RoboCom -本科组(初赛)7-2 芬兰木棋_7-2 芬兰木棋python

7-2 芬兰木棋python
  1. def storage(dic,p):
  2. if dic.get(slop) == None:
  3. dic[slop] = [(n,p)]
  4. else:
  5. lis = dic.get(slop)
  6. lis.append((n,p))
  7. dic[slop] = sorted(lis)
  8. def cout(dic):
  9. lis = list(dic.values())
  10. score = 0
  11. time = 0
  12. n = 0
  13. z = 1
  14. while n<len(lis):
  15. for i in lis[n]:
  16. if i[1]>1:
  17. z=1 if z!=0 else 2
  18. score+=i[1]
  19. else :
  20. z = 0
  21. score += i[1]
  22. time += z
  23. if lis[n][-1][1]==1: time+=1;z=1
  24. n+=1
  25. return (score,time)
  26. import math
  27. ldx = {}
  28. rdx = {}
  29. udy = {}
  30. ddy = {}
  31. N = int(input())
  32. while N>0:
  33. x, y, p = map(int, input().split())
  34. N-=1
  35. n = y
  36. if x!=0:
  37. a = math.gcd(x,y)
  38. slop = (x/a, y/a)
  39. if x>0:
  40. storage(rdx, p)
  41. else:
  42. storage(ldx, p)
  43. else:
  44. slop = (0, y)
  45. if y>0:
  46. storage(udy,p)
  47. else:
  48. storage(ddy, p)
  49. total = cout(ldx) + cout(rdx) + cout(udy) + cout(ddy)
  50. print(total[0]+total[2]+total[4]+total[6],end=' ')
  51. print(total[1]+total[3]+total[5]+total[7],end='')

最后运行还是有两个超时,按照我目前的水平可能无法优化。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Li_阴宅/article/detail/864258
推荐阅读
相关标签
  

闽ICP备14008679号