info: { blogIcon: 'https://cdn.luogu.com.cn/upload/usericon/765493.png', blogUser: 'OIerBoy', blogAvatar: 'https://cdn.luogu.com.cn/upload/usericon/765493.png', blogStartDate: '2023-04-22', webpageTitleOnblur: '(o?v?)ノ Hi', webpageTitleOnblurTimeOut: 1000, webpageTitleFocus: '(*′?`*) 欢迎回来!', webpageTitleFocusTimeOut: 1000, webpageIcon: "https://cdn.jsdelivr.net/gh/BNDong/Cnblogs-Theme-SimpleMemory@master/img/webp/blog_logo.webp", { enable: true, // 是否开启日/夜间模式切换按钮 auto: { // 自动切换相关配置 enable: false, // 开启自动切换 dayHour: 5, // 日间模式开始时间,整数型,24小时制 nightHour: 19 // 夜间模式开始时间,整数型,24小时制 } } },

[信友队图灵杯中级组-D]基础循环结构练习题

2023-5-13

题目

题目传送门

难度&重要性(1~10):6.5

题目来源

信友队图灵杯

题目算法

构造

解题思路

我们可以知道,在一开始我们得到的 a 数组是 1,2,3,n
所以我们可以看做是:
image

题目让我们构造出一个 b 数组。
因为数据是 1n103,1bi105,而他要求我们最多要在 2001 次修改以内得到。
所以我们就要考虑最多每两次操作得到一个 bi,且不对其他数有所影响。
我们要用 mod(1e5+3) 去代替减法操作。
考虑每次从对最大的修改。

然后我们需要将 bi 分解一下,分解成查分形式。
ci=bibi1
bi=j=1icj

最后,我们怎么确定每一次的最大值呢?
答案是我们只需要从后向前修改就行了。
因为,每次对 ai mod 后就归零了,即使最小值,而因为每次做加时是整体加的。
就像下图:
image

从后往前修改:

  • 先将 anmodnn0
  • 在整体加上 cn

以此类推。

完成状态

已完成

posted @   OIerBoy  阅读(138)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示