尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

12.21 模拟赛

12.21 模拟赛
📅 发布时间:2026/6/19 1:14:54

T1

题面:一个长度为 \(n\) 的序列 \(\{a_1,a_2,\cdots,a_n\}\),求有多少个不同的 \(\gcd(a_i,a_j)(i\not=j)\)。 \(n\le2\times 10^5,a_i\le 10^7\)
题解:从大到小枚举值域,简单容斥,复杂度是调和级数 \(O(n\ln n)。\)

死亡回放:\(N\) 开小了。

核心代码
for (int s = maxa; s >= 1; s--) {int now = 0;for (int i = s; i <= maxa; i += s) now += vis[i];cnt[s] = 1ll * now * (now - 1) >> 1; for (int i = 2 * s; i <= maxa; i += s) cnt[s] -= cnt[i];if (cnt[s]) ans++;
}

T3

题面:三维空间中有 \(n\) 个点,\(n\) 个向量,你要给每个点分配一个向量,使得分配后每两个点之间的距离 \(\ge\) 原来两个点距离,输出分配方案。
\(n\le 500\),\(-10^{4}\ge\)每个点和向量的坐标大小 \(\le 10^4\)。
题解:考虑动态调整,给每个点先分配一个向量。然后 \(O(n^2)\) 的枚举两个点,如果两个点之间的距离 \(\le\) 原来的距离,进行交换,在重新从头枚举,重复执行,知道满足条件。

核心代码
random_shuffle(p + 1, p + n + 1);
// for (int i = 1; i <= n; i++) cout << p[i] << " \n"[i == n];
while (1) {bool flag = 0;for (int i = 1; i <= n; i++)for (int j = i + 1; j <= n; j++)if (disa(i, j) > dis(i, j)) {swap(p[i], p[j]);flag = 1;}if (!flag) break;
}

相关新闻

  • 当 LinkedList 不是列表时,速度快的兔子都追不上!
  • 【Java毕设源码分享】基于springboot+vue的大学生成绩管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)
  • hot100 238.除自身以外的数组的乘积

最新新闻

  • AI模型版本传闻的真相:如何识别V4烟雾弹与提取真实信号
  • 2026优选宁波AI推广公司 多维度排名推荐解析 - 起跑123
  • 从奔腾浮点除错误看硬件可靠性:浮点运算、芯片测试与危机管理
  • 2026寄快递省钱攻略:快递收费标准与折扣技巧大全 - 快递物流资讯
  • P2020DS开发平台:深入解析控制、调试与电源管理核心架构
  • MPC821嵌入式处理器外部信号接口深度解析与硬件设计实战

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号