分析

找规律然后构造才是王道(分类讨论)
如果k小于等于n,说明不会来回走,所以不会影响增量,只需要找到最大的连续k个即可
可用accumulate操作,注意如果initial = 0的话,最后是会有n + 1 个位置的,注意最后多加一个1
然后就可以求得最大的连续的k个和为maxn
然后这时候增量蘑菇的采集个数为0加到k - 1就是k ( k - 1) // 2

如果k大于n,必定会有重复走的地方
为了使得收割的增量最大,最后一定要停在端点(否则不能享受最贪心的增量)
由于一定会回头走,我们只关注它最后一次从左往右
停在最右边,每个点k分钟长k个果子,最右边有1个收不到,最左边有n个收不到
首先sum(a)必定可以收完,然后总共增量果子有n * k个,收不到的果子有1加到n也就是n(n + 1) // 2

ac code

from itertools import accumulatefor _ in range(int(input())):n, k = list(map(int, input().split()))a = list(map(int, input().split()))if k == n:print(sum(a) + n * (n - 1) // 2)elif k < n:# 不会回头# 增量不影响# 所以找最大的连续k个即可temp1 = k % npreSum = list(accumulate(a, initial=0))maxn = 0for i in range(n - temp1 + 1):maxn = max(maxn, preSum[i + temp1] - preSum[i])# temp1 = k# 增量为0 +... + (k - 1)可以print(maxn + temp1 * (temp1 - 1) // 2)else:# 来回走# 为了增量最大,最后一定挺在端点(否则不能享受最贪心的增量)# 初始的都可以收集# 只关注它最后一次从左往右# 停在最右边,每个点k分钟长k个果子,最右边有1个收不到,最左边有n个收不到print(sum(a) + k * n - n * (n + 1) // 2)

总结

构造 + 找规律
分类讨论 (n和k,原本和增量)
考察了一波数学解题能力
还有accumulate的坑点

cf:D. The Enchanted Forest【贪心 + 模拟 + 构造】相关推荐

  1. CF - 789A. Anastasia and pebbles - 贪心+模拟

    1.题目描述: A. Anastasia and pebbles time limit per test 1 second memory limit per test 256 megabytes in ...

  2. Codeforces-1687 A: The Enchanted Forest 【贪心、简单数学】

    Codeforces-1687 A: The Enchanted Forest 题目 题目截图 样例描述 题目大意   给定一个长度为 n n n 的数组 { a i } \{a_i\} {ai​}. ...

  3. D. The Enchanted Forest

    传送门: D. The Enchanted Forest 题意:有一条长为n的线段,每个点上起始有a[i]个蘑菇.你可以选择起始点x.你有k分钟,每分钟以下事件将会发生: 1.从点x走到点y(abs( ...

  4. uva 10977 Enchanted Forest 魔幻森林

    应该是比较冷门的一道题,只搜到了英文题解hhhh,难度不大,所以这次来写一个认真的题解报告. You are Ash, the famous Pokemon trainer. To become th ...

  5. c++实现贪心法构造最大整数问题

    c++实现贪心法构造最大整数问题 问题描述: 问题描述: 求给定非负整数序列中的数字排列成的最大数字. 例如: 输入:{50,2,1,9} 输出:95021 思路: 采用贪心算法,先将所有整数转换成字 ...

  6. c++ 贪心法构造货币统计问题

    c++ 贪心法构造货币统计问题 问题描述: 问题描述: 某单位为每个员工发工资(精确到元),为了保证不要临时兑换零钱, 且取款的张数最少,取工资前要统计出所有职工的工资所需各种币值(100,50,20 ...

  7. 校内hu测(10.6T2,T3)(乱搞+贪心+模拟)

    @liu_runda T2.便(then) [题目描述] 给出一个R*C的棋盘.共有R行C列,R*C个格子.现要在每个格子都填一个非负整数.使得任意一个2*2的正方形区域都满足这样的性质:左上角的数字 ...

  8. 【NOIP2013】积木大赛(差分数组,贪心模拟)

    题目 原题链接 问题描述 分析 直观思路--贪心模拟:每次都处理最长正整数区段. 以[2,3,4,1,2][2,3,4,1,2][2,3,4,1,2]为例: [2,3,4,1,2]⟹[1,2,3,0, ...

  9. The Enchanted Forest(思维/前缀和)

    The Enchanted Forest 传送门 Problem - 1687A - Codeforces 1600 思路 分类,如果k<=n,那很好想,就挑最大的连续子段和就行:当k>n ...

最新文章

  1. 这款 IDE 插件再次升级,让「小程序云」的开发部署提速 8 倍
  2. zh-cn 与 zh-hans 是什么关系、有什么区别
  3. mysqldump 忽略视图_mysqldump的使用--解决不能导出视图的问题
  4. django实现web分页的三种方法
  5. 自动驾驶——多传感器融合的学习笔记
  6. 第三章:什么是组织结构
  7. windows下利用pybind11生成pyd库
  8. 最小生成树、二分图问题概述
  9. 张宇1000题高等数学 第十八章 多元函数积分学(一)
  10. php5.0 cms安装教程,小浣熊CMS5.0漫画系统安装教程和采集教程
  11. MT【109】线面角最大时为二面角平面角
  12. Copy Elision
  13. Android ScrollView scrollbarStyle 样式详解
  14. Linux: 硬件时钟, 系统时钟, 网络时钟, 时区修改和同步
  15. 现如今99%的区块链都是空气项目
  16. EEPROM(24C64)的IIC通讯调试记录要点,使正点原子例程兼容性更好
  17. 常见大数据学习网站总结(不定期更新)
  18. Maven-Archetype Catalog
  19. icloud无法注销,icloud服务中keyChain钥匙串无法关闭问题的解决。
  20. 24号准备去北京.Net俱乐部讲课

热门文章

  1. mysql use index用法_mysql use index、ignore index、force index用法
  2. 【工具配置】CLion编译c语言的配置
  3. 扩展欧几里得求逆元实例
  4. 仿DNF官网页面(一看就会,适合刚学习Html、CSS、JS的小伙伴)
  5. chatGPT对经济的影响
  6. 1-4移动均线交叉策略3
  7. 《超凡战队:能量之战》首个实机试玩放出
  8. 详细说明Win10添加开机自动运行软件3种方法
  9. 海外网红营销的视频及图片内容发布的尺寸有哪些?
  10. 骨传导耳机音质好不好、音质最好的骨传导耳机推荐