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

CM1-DAY1题目总结

CM1-DAY1题目总结

前言

因为是第一节课,虽然比较简单,但是还是有思维难度的

1. CESE-1081

题意

给定长度为 $n$ 序列 $a$ ,求 $\underset{1 \leq i,j \leq n}\max { {\gcd(i,j)}}$

数据范围

$n \leq 2e5 , 1 \leq a_i \leq 1e6$

思路

Case 1

显然有暴力思路,复杂度是 $O(n^2)$ 的

for(int i=1;i<=n;++i) for(int j=i+1;j<=n;++j) ans=max(ans,gcd(a[i],a[j]));

Case 2

用桶记录 $a_1 \sim a_n$ 中,每个数的每一个因子出现的次数

统计答案时,从大到小遍历桶,若 $t_i \geq 2$ ,则输出答案

复杂度是 $O(n\sqrt{V})$ 的,其中 $V= \sum_{i=1}^na_i$

for(int i=1,m=sqrt(a[i]);i<=n;++i,m=sqrt(a[i])) for(int j=1;j<=m;++j) if(!(a[i]%j)) ++t[j];
for(int i=MAX;i;--i) if(t[i]>1) {cout<<i;return 0;}

Case 3(正解)

考虑优化

发现可以使用 枚举倍数 的方法做到 $O(n \log n)$

最开始对于每一个 $a_i$ ,令 t[a[i]]++;

统计答案时,从大到小遍历桶,对于当前的 $i$ ,令 $cnt=\sum^{n}_{i \vert j}{t_j}$

若 $cnt \geq 2$ ,则输出答案

while(n--) x=read(),t[x]++;
for(int i=M-1,cnt=0;i;--i,cnt=0){for(int j=i;j<M && cnt<2;j+=i) cnt+=a[j];if(cnt>1){cout<<i;return 0;}
}

2. 洛谷P13388

题意

给定长度为 $n$ 序列 $a$ ,求使 $\gcd(a_1+y,a_2+y,\cdot\cdot\cdot,a_{n-1}+y,a_n+y)$ 最大的最小 $y$

数据范围

$2 \leq n \leq 1000,1 \leq a_i \leq 10^{50}$

思路

$\Large {需要高精度!!!}$

令 $ans_y=\gcd(a_1+y,a_2+y,\cdot\cdot\cdot,a_{n-1}+y,a_n+y)$

显然 $ans_y \vert (a_i-a_j)$ ,其中 $1 \leq i,j \leq n$

所以 $\max{ans_y}=\gcd(a_i-a_j)$ ,其中 $1 \leq i,j \leq n$

令 $gcd=\gcd(a_i-a_j)$ ,其中 $1 \leq i,j \leq n$

考虑求最小的 $y$

可得 $y\equiv-a_1(\mod gcd)$

同时,对于 $gcd$ 易证 $\underset{1 \leq i,j \leq n}\gcd(a_i-a_j)=\underset{1 \lt i \leq n}\gcd(a_{i}-a_{i-1})$

3. sgu-137

题意

给定 $n,k$ ,保证 $\gcd(n,k)=1$ ,求一个长度为 $n$ 的序列,所有元素的和为 $k$ ,且 循环同构

注:对于循环同构,一个序列 $S_1 S_2 S_3 \cdot\cdot\cdot S_n$ 如果满足新序列 $S_{1-1} S_2 S_3 \cdot\cdot\cdot S_{n+1}$能够通过旋转的操作(不是翻转)来得到旧的序列,那么这个序列就循环重构

数据范围

$2 \leq n \leq 1000,1 \leq k \leq 30000$

思路

一个序列 $S_0 S_1 S_2 \cdot\cdot\cdot S_{n-1}$ 向右 $t$ 次后变为 $S_tS_{t+1}S_{t+2}\cdot\cdot\cdot S_{t-1}$

根据对应关系,可得 $S_0=S_t,S_1=S_{t+1}$

所以若 $S_i=S_j$ 当且仅当 $i \equiv j (\mod k)$

可得 $S_t=S_{2t}=\cdot\cdot\cdot=S_{mt}$

所以先将每个位置都赋值为 $k \div n$ ,再枚举一个 $t$ ,最后将 $t$ 的倍数位加上 $1$ 即可

for(t=1;t<n;++t) if((n-1)==(k%n)*t%n) break;
for(int i=t;i!=n-1;i=(i+t)%n) f[i]=1;
f[n-1]=1;
for(int i=0;i<n;++i) cout<<k/n+f[i]<<' ';
http://www.zskr.cn/news/1359963.html

相关文章:

  • STM32MP1 M4内核定时器中断配置与调试实战
  • 基于RK平台的智慧出行方案:从芯片选型到车规级开发的实战指南
  • WzComparerR2终极指南:解锁冒险岛游戏数据的完整解决方案
  • 鱼骨图分析法
  • Pearcleaner:如何彻底清理Mac应用残留文件?免费开源工具完整指南
  • 【AI Agent行业落地实战指南】:2024年7大高价值场景×5类失败陷阱×3步快速验证法
  • 资源嗅探下载工具终极指南:三步搞定全网视频音频图片下载
  • Purple Pi OH开发板7天实战OpenHarmony:从环境搭建到应用开发
  • 基于Purple Pi OH的OpenHarmony标准系统7天实战入门指南
  • 西恩士液冷板清洁度萃取设备/清洗机:从源头守护液冷系统“血液”洁净 - 工业设备研究社
  • MPC5604B/C Memory Map 内存映射全解析
  • MPC5604B/C 信号与引脚全解|硬件 / 底层必看
  • 基于Java的外卖点餐配送系统_43lq510m
  • CANN-昇腾NPU-多机多卡-怎么把16卡用出32卡的效果
  • Photoshop 2026(PSv27.x)详细安装教程与下载地址
  • 今天不建Lovable ML平台,明天就被团队弃用!2025年AI工程团队留存率预警下的4步速建法
  • 一文带你学习C++析构函数
  • RK3588开发板蓝牙功能快速测试与配置指南
  • 2026年企业流量增长视角下档案托管行业GEO优化三家服务商专业分析与选型参考 - 产业观察网
  • 推理 → 行动 → 观察:用 LangChain + Python 实现一个智能体循环
  • 实测SpringBoot集成Taotoken后API调用的延迟与稳定性表现
  • STM32H5安全连接AWS IoT:基于TrustZone与Secure Manager的物联网方案
  • 联发科MT6833与MT6853 5G核心板:规格对比与产品选型实战指南
  • 【燃烧机】模拟了燃烧机的热力学循环分析活塞动力学以及温度和压力变化对发动机效率的影响【含Matlab源码 15557期】
  • Taotoken API Key管理与访问控制功能实际使用反馈
  • PIC32单片机通信接口开发实战:从UART、SPI、I2C到以太网
  • 基于PSoC3的智能锂电池充电器设计:从架构到固件的实战解析
  • RISC-V开发板USB手柄数据采集:Linux输入子系统与evdev接口实战
  • 企业级飞书文档自动化迁移架构深度解析与最佳实践
  • 深入解析Linux虚拟内存:从malloc到物理地址的转换机制