题解:P10136 [USACO24JAN] Cowlendar S

news/2025/11/11 10:48:47/文章来源:https://www.cnblogs.com/StarLink/p/19209389

早上打模拟赛败在你上面,下午改题改了半天,晚上又在 Ad-hoc 题单里相见,那我就写篇题解纪念。

题目链接

思路

一般这种取模题三个套路:

  1. 取模余数相同 \(\rightarrow\) 作差之后值为模数的倍数;
  2. 取模后减小范围或判断整除;
  3. \(a \leq b\) 时,\(a \bmod b \leq \frac{a}{2}\)

这个题是想让我们找出一定范围内的数字 \(k\) 对整个序列取模后的所有余数不超过 3 个,明显是用第一条。

然后我们就可以先把这些数字(前提是同余)两两作差,判断所有差值的因子是否合法即可。时间复杂度 \(O(n^3 \sqrt{V})\)\(V\) 是值域。

但是 \(n \leq 10^4\)\(1 \leq a_i \leq 4 \times 10^9\),我们上面的做法还是太暴力了,我们不可能在值域上动手脚,只能考虑怎么枚举更少的数找出同余的数对。

注意到不同余数上限只有 3,同时 \(n\) 基本上大于这个数,于是我们想到了鸽巢原理。

不知道鸽巢原理是啥也没关系,我们这么去理解:给出一些形状大小都相同的彩球,我们知道彩球的颜色数小于彩球的数量,把它们都放到一个箱子里,问题要从中至少摸几个球才能保证摸出两个颜色相同的球。这很简单,只要次数超过颜色数即可。

运用到这个题上,在余数只有三个的前提下,我们就能想到随便拿出 4 个数字,就一定能保证它们模 \(k\) 后一定有两个数字同余,然后用上面的方法就可以求出答案。

但是注意我们上面所说的都是建立在所有数字均不相等的情况,所以我们要先去重再计算。

你说数列小于 3 怎么办?数字个数都没有 3 个怎么模出来 4 个余数,特判一下就行。

时间复杂度:\(O(n \sqrt{V})\)\(V\) 是值域,可以通过本题。

代码

枚举因子这里应该还能优化,但是我懒就这样吧。

#include <bits/stdc++.h>
#define int long long
using namespace std;const int MN = 1e4 + 3;
int n, a[MN], m, ans;
set<int> st;bool check(int x) {set<int> ts;for (int i = 1; i <= n; i++) {ts.insert(a[i] % x);if (ts.size() > 3) return false;}return true;
}signed main() {ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);cin >> n;for (int i = 1; i <= n; i++) cin >> a[i];sort(a + 1, a + n + 1);n = unique(a + 1, a + n + 1) - a - 1;m = a[1] / 4;if (n <= 3) return cout << (1 + m) * m / 2, 0;for (int i = 1; i <= 4; i++) {for (int j = i + 1; j <= 4; j++) {int cur = abs(a[j] - a[i]);for (int x = 1; x * x <= cur && x <= m; x++) {if (cur % x) continue;if (check(x)) st.insert(x);int tx = cur / x;if (tx <= m && check(tx)) st.insert(tx);}}}for (int x : st) ans += x;cout << ans;return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/962154.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WinForm中C#扫描枪功能实现(含USB/串口方案)

一、技术选型与设备连接 1. 扫描枪连接方式对比类型 通信协议 适用场景 实现复杂度USB模拟键盘 HID协议 快速部署,无需驱动 ★☆☆☆☆串口通信 RS-232/USB转串 工业级设备,定制化需求 ★★★☆☆网络通信 TCP/IP 远…

类方法和静态方法

@classme Python会自动绑定类方法的第一个参数,类方法的第一个参数(通常定义为cls)会自动绑定到类本身 但对于静态方法则不会自动绑定

实用指南:新手上手:基于Rokid CXR-M和CXR-S SDK构建简易翻译助手

实用指南:新手上手:基于Rokid CXR-M和CXR-S SDK构建简易翻译助手pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "…

2025年新疆租车公司权威推荐榜单:新疆自驾游租车/新疆租皮卡车/新疆租通勤班车服务公司精选

广袤天地间,一辆靠谱的车是你探索新疆的最佳旅伴。 随着新疆旅游市场持续升温,2024年全区接待游客突破2.5亿人次,租车自驾作为灵活自由的出行方式,市场需求显著增长。 据行业数据显示,2025年新疆租车市场规模预计…

基于C#和NModbus4库实现的Modbus RTU串口通信

基于C#和NModbus4库实现的Modbus RTU串口通信,包含完整的界面设计和功能实现:一、项目依赖配置NuGet包安装: Install-Package NModbus4 Install-Package System.IO.Ports窗体控件布局: <!-- 基础控件配置 -->…

学习如何创建 Mono 实例

学习如何创建 Mono 实例 Flux 描述 AMono<T>是一个响应式流 Publisher,还增强了许多可用于生成、转换、编排 Mono 序列的操作符。 它是最多 Flux 可以发出 1 个<T>元素的特例:Mono 要么有值(包含元素)…

go_micro框架的安装和使用 - 详解

go_micro框架的安装和使用 - 详解2025-11-11 10:40 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !impor…

2025年超融合产品推荐排行榜

2025年超融合产品推荐排行榜拓实超融合产品 - 综合评分第一产品亮点 一体化架构:计算、存储、网络深度融合 智能运维:自动化部署与智能监控 高可用性:99.99%业务连续性保障 弹性扩展:按需扩容,灵活配置 技术优势 …

2025年北京cppm面授培训机构权威推荐榜单:cppm课程培训/cppm认证报名/cppm认证培训源头机构精选

在当今全球化的商业环境中,采购与供应链管理已成为企业核心竞争力的重要组成部分。CPPM(注册职业采购经理)认证作为采购与供应链领域的权威职业资格,其市场需求量年均增长率稳定在15%以上,已成为众多企业选拔和评…

N-gram

📝 N-gram 1. N-gram 的定义 N-gram 是指一段文本中连续出现的 N 个词或字符的序列。它是一种特征工程(Feature Engineering)技术,将文本数据转化为机器学习模型可以理解的数字特征。N 是一个变量,代表序列的长…

pandas介绍

pandas介绍关于数学统计的各种运算,及文件读写的数学库

图像处理工具面面观:数字化时代的图片管理方案

在数字化生活普及的今天,图片已成为我们记录生活、开展工作的重要载体。无论是社交分享还是专业设计,都离不开对图像的基础处理。近期,一些集成式在线图片处理工具因其便捷性受到关注,它们将多种常用功能整合于同一…

实用指南:前端性能优化?

实用指南:前端性能优化?pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", &…

2025年北京cppm报考机构权威推荐榜单:cppm/cppm证书/cppm课程培训源头机构精选

在当今全球化的商业环境中,采购与供应链管理已成为企业核心竞争力的重要组成部分。CPPM(注册职业采购经理)认证作为采购与供应链领域的权威职业资格,其市场需求量年均增长率稳定在15%以上,已成为众多企业选拔和评…

可见光通信(VLC)系统中单点光源功率分布模型

可见光通信(VLC)系统中单点光源功率分布模型的理论框架与分布趋势分析,结合几何光学原理和工程优化方法:一、理论基础模型 1. 朗伯辐射模型 单点光源的光功率分布通常基于朗伯辐射定律: E(r,θ)=r2I0cosmθI0:光…

2025年云桌面公司排行榜

2025年云桌面公司排行榜:北京拓实科技引领行业创新随着数字化转型的深入发展,云桌面技术已成为企业信息化建设的重要组成部分。2025年,云桌面市场呈现出更加成熟和多元化的竞争格局。以下是基于技术实力、产品创新、…

2025年个体户代办渠道排行榜单

2025年个体户代办渠道排行榜单一、2025年个体户代办服务市场概况随着数字经济时代的到来,个体户创业热潮持续升温,代办服务行业也迎来了新一轮发展机遇。2025年,个体户代办服务呈现出专业化、智能化、合规化的发展趋…

2025年节能型速冻隧道销售厂家排行

2025年节能型速冻隧道销售厂家排行随着节能环保理念的深入,节能型速冻隧道在食品加工、医药等行业的应用越来越广泛。根据2025年市场调研数据,以下是节能型速冻隧道销售厂家的权威排行:一、行业领先企业排行1. 吉林…

vue3.0实现数组分组效果

效果图vue3.0+element-plus拖拽效果 vue-draggable-plus父组件使用<column-dialog :options="fields"v-model="content"></column-dialog>子组件 ColumnDialog/index.vue<template…

如何管理你的订阅服务?一个工具带来的财务新视角

在数字服务日益普及的今天,从影音娱乐到知识付费,各类订阅制服务已深度融入日常生活。然而,随着订阅项目不断增多,用户常常会面临一个现实问题:难以清晰掌握自己在各个平台上的持续支出。近期,一类专注于订阅管理…