【蓝桥杯】省赛:分糖果(思维/模拟)

思路

数据很小,直接暴力模拟。

有意思的是一个列表如何当成循环队列写?可以arr[(i+1)%n]让他右边超出时自动回到开头。

code

python 复制代码
import os
import sys

n = int(input())
arr = list(map(int,input().split()))

ans = 0
while 1:
  arr1 = arr.copy()
  for i in range(n):
    arr1[i] = (arr[i] + arr[(i+1)%n])//2
    if arr1[i] % 2 == 1:
      arr1[i] += 1
      ans += 1
  arr = arr1.copy()
  if len(set(arr)) == 1:break
print(ans)
相关推荐
im_AMBER2 小时前
Leetcode 33
算法·leetcode·职场和发展
木易 士心4 小时前
Android 开发核心知识体系与面试指南精简版
android·面试·职场和发展
测试19986 小时前
自动化测试报告生成(Allure)
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
爱coding的橙子8 小时前
每日算法刷题Day77:10.22:leetcode 二叉树bfs18道题,用时3h
算法·leetcode·职场和发展
Swift社区8 小时前
LeetCode 404:左叶子之和(Sum of Left Leaves)
算法·leetcode·职场和发展
野蛮人6号11 小时前
力扣热题100道之238除自身以外数组的乘积
算法·leetcode·职场和发展
程序员小远12 小时前
如何编写自动化测试用例?
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·接口测试
阿啄debugIT15 小时前
HashMap为什么线程不安全? ConcurrentHashMap如何保证线程安全? AQS如何实现锁的获取与释放?用男女关系进行解释,一看就懂
经验分享·职场和发展·系统架构·软件工程·1024程序员节
西阳未落1 天前
LeetCode——二分(进阶)
算法·leetcode·职场和发展