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

[USACO24JAN] Cowlendar S题解

[USACO24JAN] Cowlendar S

题面

原题链接

简介:给出 \(a_1....a_n\),对所有满足 s 的 \(L\) 求和

s 为:

  1. \(\forall i,4 \times L \leq a_i\)
  2. \(a_i \bmod L\) 不超过 \(3\) 种不同的值。

\(1 \leq a_i \leq 4 \cdot 10^9\)

题解

一种暴力的做法是枚举 \(L\) ,然后 \(O(n)\) 检查是否合法,在这题的数据范围下显然难以通过。考虑发掘性质降低枚举量。

余数最多有三种,这个必要条件很强,我们考虑从它入手。根据鸽巢原理,对于所有合法的 \(L\) ,前 \(4\)\(a\) 在模 \(L\) 的意义下必然有两个同余,否则与这个必要条件相悖。同时对于两个模 \(L\) 同余的 \(a_i,a_j\),有 \(L \mid a_j-a_i\) 。我们考虑暴力配对前四个 \(a\) 作差,就能获得所有合法的 \(L\) 的倍数,对这些倍数枚举因子即可,最后再 \(O(n)\) 检查保证条件充要。

\(10^9\) 级别的数的因子个数最大只有 \(1000\) 左右,所以这样枚举大大降低了我们对 \(L\) 的枚举量,做题时留心观察题目限制,抓中某些很强的限制,往往都能引导正解。

const int N=1e5+5;
const int inf=1e18;
int n,a[N],mn=inf,len;
set<int> s;
bool chk(int x){set<int> num;for(int i=1;i<=len;i++){num.insert(a[i]%x);if(num.size()>3) return false;}return true;
}
void xpigeon(){cin>>n;for(int i=1;i<=n;i++){cin>>a[i];mn=min(mn,a[i]);}sort(a+1,a+n+1);len=unique(a+1,a+n+1)-(a+1);if(len<=3){cout<<(mn/4)*(mn/4+1)/2<<'\n';return ;}for(int i=1;i<=4;i++){for(int j=i+1;j<=4;j++){int num=abs(a[j]-a[i]);for(int k=1;k*k<=num;k++){if(num%k!=0) continue;if(k*4>mn) break;if(chk(k)) s.insert(k);if((num/k)*4<=mn && chk(num/k)) s.insert(num/k);}}}int ans=0;for(auto i:s) ans+=i;cout<<ans<<'\n';
}
http://www.zskr.cn/news/48864.html

相关文章:

  • 【A】Shinichi Kudo
  • CF 2093G Shorten the Array
  • 20251113周四日记
  • 深入解析:list的迭代器
  • 题解:P1393 Mivik 的标题
  • appium包含文本定位的5种方法
  • 20251112周三日记
  • 学习笔记:AC 自动机
  • 重组蛋白技术基础概述
  • 2025-11-13
  • 字典树小记
  • 搜维尔科技:Xsens Link为精准而生,为创意而设计,为动作捕捉性能树立了新的标准
  • 2025 年 11 月粮库空调厂家最新推荐,聚焦资质、案例、售后的实力品牌深度解析!
  • 题解:P3813 [FJOI2017] 矩阵填数
  • 25.11.13随笔联考总结
  • 完整教程:Verilog和FPGA的自学笔记6——计数器(D触发器同步+异步方案)
  • NOIP 考前做题计划
  • Docker部署Code-Server,实现远程写代码
  • 2025 年 11 月铁附件厂家最新推荐,聚焦资质、案例、售后的五家企业深度解读!
  • Day37(7)-F:\硕士阶段\Java\课程代码\后端\web-ai-code\web-ai-project01\springboot-web-01
  • 深度学习实验一之图像特征提取和深度学习训练数据标注 - 实践
  • 题解:ABC232G Modulo Shortest Path
  • 如何在 Mac 上安装 MySQL 8.0.20.dmg(从下载到使用全流程,附安装包)
  • 基于Ai元人文构想的关系图
  • 题解:P10360 [PA 2024] Desant 3
  • 软件项目管理工具推荐|飞书项目 vs Asana vs ClickUp vs Jira
  • 题解:AT_abc232_g [ABC232G] Modulo Shortest Path
  • QF-Lib:用一个库搞定Python量化回测和策略开发
  • 软件工程学习日志2025.11.13
  • 完整教程:数值计算-线性方程组的迭代解法