当前位置: 首页 > backend >正文

近期刷题总结


Codeforces Round 1045 (Div. 2)
 

Problem - B - Codeforces
这个题目可以用 k + 1 作为 gcd 的最终结果。

为什么呢?因为 (k + 1) ≡ 0 (mod k + 1) 然后根据同余的定义可以变为 k ≡ -1(mod k + 1)。后续代换非常方便。

然后就是接着替换了。 我们可以看成是 ai + k * ci ,然后根据上面的式子k ≡ -1(mod k + 1),我们可以写成是 ai + (-1) * ci ≡ 0 (mod k + 1), 然后就可以变化成为 ci ≡ ai (mod k + 1)。

到这里,我们要求的 ci 就出来了,就是等于 ai % (k + 1)。

void solve()
{int n, k; cin >> n >> k;vector<int> a(n + 1);for (int i = 1; i <= n; i ++) cin >> a[i];for (int i = 1; i <= n; i ++){a[i] += k * (a[i] % (k + 1));cout << a[i] << " ";}cout << "\n";
}

Problem - C - Codeforces

这个题目可以先研究小的数组,如下标为 l,l + 1,r 的数组,并且l 和 r 是奇数。我们可以发现要满足整个条件,只需要满足,al + ar <= al + 1,并且 al < al+1 即可。

我们可以用逆向思维,假设有一个已经操作完成的数组b[N],很容易可以知道,偶数下标的数是不能被减的,所以这些下标的数都是 b[i] = a[i] 即可。奇数下标的数我们要尽量的大。

然后我们要满足上面的条件,要从小到大来依次满足所有的这个条件。假设遍历到的奇数下标为 i,然后需要满足 b[i-2] + b[i] < a[i - 1] 这个条件,b[i - 2] 是之前已经放置好的奇数 b 数组的数,a[i - 1] 是之前就没有变的。通过简单变换我们可以得 b[i] < a[i - 1] - b[i - 2]。

第二个条件就是 b[i] < a[i + 1] ,相邻的两个数,奇数一定小于偶数。满足这两个条件就可以了。

http://www.xdnf.cn/news/19880.html

相关文章:

  • ChartView的基本介绍与使用
  • 江协科技STM32学习笔记补充之004 基于XC6206P332MR(Torex)的5V到3.3V的电压转换电路分析
  • 2025年中国GEO优化服务机构官方信息汇总与能力概览
  • 《增广贤文》读书笔记(四)
  • 热烈庆祝 | 一二三物联网携这款产品入选2025年度山东省首台(套)技术装备生产企业及产品名单
  • “硬件初始化配置,包括芯片选型、时钟树设计、GPIO/外设参数设置”一般都是哪些需要配置
  • 腾讯云《意愿核身移动 H5》 快速完成身份验证接入
  • 【GitOps】初始Argo CD
  • Unity学习----【进阶】Addressables(一)--概述与简单的使用
  • 小企业环境-流水线管理
  • vue2头部布局示例
  • 基于https+域名的Frp内网穿透教程(Linux+Nginx反向代理)
  • c语言程序之魂——算法(练习题,流程图,程序源码)
  • 2025 年国内外十大顶尖低代码开发平台排行榜
  • 【C++】控制台输入与输出
  • 机器学习实战:逻辑回归算法深度解析与案例应用
  • Win64OpenSSL-3_5_2.exe【安装步骤】
  • ABAP BAPI_CONTRACT_CREATE 报错 06 658
  • 【FastDDS】Layer DDS之Core (详解)
  • pytorch gpu版本安装(最新保姆级安装教程)
  • Masonry
  • 从全栈开发到微服务架构:一位Java工程师的实战经验分享
  • el-dialog 打开dialog弹框,鼠标点击事件无法执行
  • [TryHackMe]Oh My WebServer(nday漏洞+容器逃逸)
  • Teacher Forcing技术解析
  • 解构复杂财务逆向业务:如何优雅地生成与管理负数单?
  • c++ zint二维码、条形码开发库
  • k8s初始化常见问题
  • 笔记:深层卷积神经网络(CNN)中的有效感受野简单推导
  • 行业分享丨基于SimSolid的大型汽车连续冲压模具刚度分析