agc050e 题解

news/2025/11/19 16:33:51/文章来源:https://www.cnblogs.com/Re-Star/p/19243135

虽然AT评的是问号题,但并不是特别难。设

\[f(x_1,y_1,x_2,y_2,x_3,y_3)=\sum_{x=0}^{y_1y_2y_3}\prod_{i=1}^3 [\bmod y_i\le x_i] \]

题目要求的就是 \(f(g_1-1,r_1+g_1,g_2-1,g_2+r_2,g_3-1,g_3+r_3)\)

考虑如何求解 \(f\),有一个思路就是枚举 \(x\)\(y_1\)\(y_2\)\(y_3\) 分别取模的值 \(b_1\)\(b_2\)\(b_3\)。找到一个合法的 \(x\) 的充要条件即 \(b_1\equiv b_2\bmod \gcd(y_1,y_2)\),对于任意两组都要满足该条件。

这启发我们对于 \(\bmod y_2\)\(\bmod y_3\) 相同的 \(b_1\) 对于 \(b_2\)\(b_3\) 合法的限制是相同的。

于是我们求出 \(v=lcm(\gcd(y_1,y_2),\gcd(y_1,y_3))\),当 \(v\ne y_1\) 时,\((x\bmod y_1)\bmod v\) 相同时的答案是一样的。我们便可将问题简化为子问题,前面有 \(\lfloor \frac{x_1}{v}\rfloor\) 个完整的组,答案都是 \(f(v-1,v,x_2,y_2,x_3,y_3)\),余项单独处理为 \(f(x_1\bmod v,v,x_2,y_2,x_3,y_3)\)。若 \(v=y_1\) 则依次对 \(y_2\)\(y_3\) 做类似操作,容易发现递归层数最多为 3,也就是对 \(y_1\)\(y_2\)\(y_3\) 各做一次操作进行递归。

若对于 \(y_1\)\(y_2\)\(y_3\) 均无法进行上述操作,那么说明它们满足任意两数的最小公倍数时另一个数的倍数。则此时一定存在正整数 \(x,y,z,j\),满足 \(x,y,z\) 两两互质使得 \(y_1=xjy\)\(y_2=xzj\)\(y_3=yzj\)。我们令 \(x> y> z\),则 \(y,z\) 均小于 \(\sqrt{2e12}\)

那么我们可以枚举对于 \(y_1\)\(y_2\) 合法的数,具体的可以将两个初始为 \([0,x_1]\)\([0,x_2]\) 的区间向后移动,每次取区间交集判断区间内对于 \(y_3\) 合法的数的个数,再将较小的区间移动,直到两个区间的左端点都为 \(\gcd(y_1,y_2,y_3)\)。最终答案为前面统计的个数乘 \(\frac{y_1y_2y_3}{\gcd(y_1,y_2,y_3)}\)

最终复杂度为 \(O(\sqrt{g+r})\)

code:

#include <bits/stdc++.h>
#define ll long long
#define LL __int128
using namespace std;
const ll N=1e6+5,mod=119*(1ll<<23)+1;
inline LL rd()
{char c;int f=1;while(!isdigit(c=getchar())) if(c=='-') f=-1;LL x=(c^48);while(isdigit(c=getchar())) x=(x*10)+(c^48);return x*f;
}
LL g1,g2,g3,r1,r2,r3,S;
LL gcd(LL x,LL y){return y?gcd(y,x%y):x;}
LL lcm(LL x,LL y){return x/gcd(x,y)*y;}
ll get(ll x,ll g,ll r){return x/r*(g+1)+min(x%r,g);}
ll sol(ll g1,ll r1,ll g2,ll r2,ll g3,ll r3)
{ll s=lcm(gcd(r1,r2),gcd(r1,r3));if(s!=r1) return (1ll*(g1/s)%mod*sol(s-1,s,g2,r2,g3,r3)+sol(g1%s,s,g2,r2,g3,r3))%mod;s=lcm(gcd(r1,r2),gcd(r2,r3));if(s!=r2) return (1ll*(g2/s)%mod*sol(s-1,s,g1,r1,g3,r3)+sol(g2%s,s,g1,r1,g3,r3))%mod;s=lcm(gcd(r2,r3),gcd(r1,r3));if(s!=r3) return (1ll*(g3/s)%mod*sol(s-1,s,g1,r1,g2,r2)+sol(g3%s,s,g1,r1,g2,r2))%mod;if(r1<r2) swap(r1,r2),swap(g1,g2);if(r2<r3) swap(r3,r2),swap(g3,g2);if(r1<r3) swap(r1,r3),swap(g1,g3);ll s1=0,e1=g1,s2=0,e2=g2,res=0;while(1){if(s1==s2&&s1%r3==0&&s1!=0) break;ll l=max(s1,s2),r=min(e1,e2);if(l<=r) res+=get(r,g3,r3)-get(l-1,g3,r3);if(e1<e2) s1+=r1,e1+=r1;else s2+=r2,e2+=r2;}return ((LL)r1*r2/s1*r3)%mod*(res%mod)%mod;
}
int main()
{g1=rd(),r1=rd(),g2=rd(),r2=rd(),g3=rd(),r3=rd();r1+=g1,r2+=g2,r3+=g3;g1--,g2--,g3--;S=r1*r2*r3;cout<<sol(g1,r1,g2,r2,g3,r3);return 0;
} 

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

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

相关文章

阿里云可观测 2025 年 10 月产品动态

本月可观测热文回顾 文章一览: 用户说“App 卡死了”,你却查不到原因?可能是监控方式错了 清理祖传 AK 不怕炸锅:基于 UModel 的云监控 2.0 身份凭证观测实践 告别手动埋点!Android 无侵入式数据采集方案深度解析…

linux ext4 文件系统

在 Linux 系统中,ext4 是一种广泛使用的文件系统格式,主要用于 UFS2(Unix File System 2)的扩展。它提供了比早期的 ext2 和 ext3 更好的性能、可靠性和功能。一、ext4 文件系统的特点特性 描述文件系统类型 ext4(…

linux exit(-1)

在 Linux 中,exit(-1) 是一个常见的命令,用于终止当前的程序或脚本。它的作用是:返回状态码:exit(-1) 会返回状态码 -1,表示程序执行失败。 终止程序:程序会立即终止,不再继续执行后续代码。用途场景在脚本中,…

奶奶都能看懂的 C++ —— 左值和右值

用通俗例子讲清 C++ 左值/右值、引用与const、取址和解引用、下标、前后置自增、范围for的拷贝与引用差异,纠正常量指针示例与误区,强调左值可读写、右值多为临时结果。如果你上网搜索过一些 C++ 教程,你总会遇见两…

2025年广东家具海运到悉尼服务商权威推荐榜单:广州海运到悉尼机构/广东家具海运到墨尔本渠道/广东海运到墨尔本公司服务商精选

随着中澳贸易往来日益密切,越来越多广东地区的家庭和企业选择将家具运往悉尼。根据悉尼港务局2024年统计数据显示,中国华南地区发往悉尼的家具类货物年增长率达到17.5%,其中广东地区占比高达68.3%。本文基于实地考察…

固废智能分拣项目开发周期

目录背景和价值📅 智能分拣项目时间线预估阶段一:准备与数据基础 (0 - 3 个月)阶段二:核心功能原型开发 (3 - 6 个月)阶段三:优化、加速与稳定 (6 - 9 个月)阶段四:现场部署与业务交接 (9 - 12+ 个月)参考资料 背…

新能源充电桩EMC整改实录:阿赛姆共模电感如何实现12dB衰减

一、行业痛点:传导发射超标问题 根据2023年IEEE EMC Symposium会议论文统计,新能源设备EMC测试失败案例中,42%源于共模干扰。 典型案例 某500kW直流快充桩在CISPR 22传导测试时,150kHz-1MHz频段超标12dBμV,峰值达…

Oracle案例:迁移含有LONG字段的表

我们的文章会在微信公众号IT民工的龙马人生和博客网站( www.htz.pw )同步更新 ,欢迎关注收藏,也欢迎大家转载,但是请在文章开始地方标注文章出处,谢谢! 由于博客中有大量代码,通过页面浏览效果更佳。Oracle案例:…

AOI检测设备厂家推荐:聚焦高精度表面检测技术应用

AOI(自动光学检测)设备作为工业生产中实现表面缺陷检测与质量控制的关键工具,通过光学成像与算法分析,能够高效识别产品表面的微小瑕疵、尺寸偏差等问题,广泛应用于半导体、电子制造、汽车零部件等精密加工领域,…

微波烘干设备安全性能:核心技术与应用解析

微波烘干设备作为工业生产中的重要装备,其安全性能直接关系到生产效率与操作安全。设备运行中的微波泄漏防护、温度精准控制、过载保护等技术环节,是保障设备稳定运行的关键。近年来,随着工业自动化水平提升,市场对…

邻接链表实战反思:从一次超时错误,看透数据结构的“映射本质”

邻接链表实战反思:从一次超时错误,看透数据结构的“映射本质”在图论算法中,邻接链表(邻接表)是最常用的存储结构——它简洁高效,能快速表示节点间的连接关系。但正是这种“简洁性”,让很多开发者(包括我)陷入…

AOI光学检测设备厂家哪家好?行业实力企业推荐

AOI(自动光学检测)设备作为工业生产中质量控制的关键工具,通过光学成像与智能算法对产品表面缺陷、尺寸精度等进行高效检测,广泛应用于消费电子、汽车制造、新能源、医疗等众多领域,其技术水平直接影响生产效率与…

免费网络研讨会 | 功能安全十步走

您目前是否也正面临确保软件开发过程符合ISO 26262:2018标准的挑战?本次网络研讨会我们为您提供逐步指导。轻松十步,带您建立符合ISO 26262:2018的软件开发流程。研讨重点:✅ 功能安全项目预设及优先事项✅ 软件V模…

AOI检测设备定制厂家实力解析:工业质量监控技术方案对比

在现代工业生产中,产品质量与生产工艺的精细化监控已成为企业提升核心竞争力的关键环节。AOI(自动光学检测)设备作为非接触式质量检测的重要工具,其定制化方案能够精准适配不同行业的生产需求,通过光学成像与智能…

能提高免疫力的灵芝品牌哪家好?这份榜单值得关注

灵芝作为传统滋补品,其含有的多糖、三萜等活性成分在调节免疫功能方面的作用逐渐被科学研究关注。随着大众健康需求提升,市场上的灵芝品牌品类丰富,选择时可从品牌积淀、产品工艺、用户反馈等维度综合分析,以找到适…

AI元人文:“协议”二字的由来

AI元人文:“协议”二字的由来 ——一次人机协同的认知显影 在AI元人文的构想中,“协议”并非一个凭空创造的概念,它的浮现,本身就是一次对人机协同认知过程的完美演示。它的由来,记录了一场从混沌的直觉走向清晰结…

提升免疫力的靠谱保健品推荐:多款优质产品深度解析

在现代快节奏的生活中,免疫力的重要性日益凸显。选择一款安全可靠的保健品来辅助提升免疫力,成为许多人关注的话题。以下将从品牌背景、产品特点等方面,为大家介绍几款在市场上具有良好口碑的相关产品。 一、推荐榜…

有助于增强免疫力的保健品有哪些

在现代快节奏的生活中,人们对健康的关注度日益提升,增强免疫力成为许多人日常养生的重要目标。合理选择有助于增强免疫力的保健品,作为饮食和生活习惯的辅助,是不少人的选择。以下将从市场反馈和产品特点等角度,为…

哪些保健品能提高免疫力?常见品类及成分解析

免疫力是人体自身的防御机制,在现代生活中,人们对通过合理方式提升免疫力的关注度逐渐提高。市面上有多种宣称可辅助调节免疫力的保健品,其成分和作用机制各有不同,了解这些产品的特点有助于更好地根据自身需求进行…

展厅装修公司推荐:专业服务与行业标杆企业解析

展厅作为企业展示品牌形象、传递核心价值的重要窗口,其装修品质直接影响客户对企业的认知与信任。在选择展厅装修服务时,企业往往关注团队专业性、服务完整性及项目落地能力,而建筑装饰行业的综合实力则是衡量服务质…