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

Atcoder abc452_e 笔记

E

对于 \(i\mod j\) ,有一个经典的转化: \(i \mod j =i- \lfloor \frac{i}{j} \rfloor \times j\)

代入题目中的算式

\[\sum_{i=1}^n \sum_{j=1}^m a_i \times b_j-\sum_{i=1}^n\sum_{j=1}^m a_i \times b_j \times \lfloor \frac{i}{j} \rfloor \times j \]

第一个式子很简单。难办的是第二个式子的快速求解。

枚举 \(i,j\) ,太慢。令 \(k=\lfloor \frac{i}{j} \rfloor\) ,如果我们枚举 \(j,k\) ,则可确定 \(i\) 的范围: \([k\times j,j\times (k+1)-1]\)

对于每对 \((j,k)\) ,对答案的贡献为 \(b_j \times j \times k\times\sum_{i=k \times j}^{j \times (k+1)-1} a_i\) ,对 \(a\) 使用前缀和即可。

那这样枚举会不会TLE呢?看上去要枚举两维,是二次方复杂度,但事实上,其实际复杂度为 \(O(\sum_{i=1}^n\frac{n}{i})\) ,由调和级数,即为 \(O(n \log n)\)

abc452_e
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector>
#define int long long
#define eb emplace_back
using namespace std;const int N=5e5+10, lxy=998244353;
int a[N], b[N], s[N];
int n,m,ans;signed main(){cin.tie(0)->sync_with_stdio(0);cin>>n>>m;for(int i=1; i<=n; i++) cin>>a[i], s[i]=s[i-1]+a[i], s[i]%=lxy;int sum=0;for(int i=1; i<=m; i++) cin>>b[i], sum+=b[i];for(int i=1; i<=n; i++)ans+=a[i]*sum%lxy*i%lxy, ans%=lxy;for(int j=1; j<=m; j++)for(int k=1; k*j<=n; k++){int l=k*j, r=min(n,j*(k+1)-1);// 有可能超过n,所以取一个minans-=b[j]*k%lxy*j%lxy*(s[r]-s[l-1])%lxy; ans%=lxy;}cout<<(ans%lxy+lxy)%lxy;return 0;
}
http://www.jsqmd.com/news/598441/

相关文章:

  • DCDC电源带载不稳?5个常见坑点及实测排查指南(附波形分析)
  • 从Fetch到SSE:我的大模型前端对接踩坑实录(附性能对比表格)
  • 智慧车站三维空间智能管控系统白皮书——构建“全域感知 × 连续认知 × 动态调度”的交通枢纽空间智能中枢
  • 告别启动黑屏:RK3568设备树中bootargs的PARTUUID到底该怎么写?(附完整配置流程)
  • gcc-multilib安装指南:解决Linux编译中的‘fatal error: sys/cdefs.h‘问题
  • 别再花冤枉钱!实测鼎阳SDS2000X+示波器软件选件‘激活’全流程(附在线脚本工具)
  • 微信聊天记录导出恢复/备份/离线查看工具(支持最新版4.1及以上)
  • 用STM32的TIMER搞定无刷电机HALL测速与换相(附代码避坑)
  • 如何通过社交媒体提高 SEO 关键词排名_如何利用地理位置优化 SEO 关键词排名
  • 华为防火墙GRE隧道配置避坑指南:为什么你的Tunnel接口ping不通?
  • 手把手教你移植STM32贪吃蛇到你的2.4寸TFT屏(附完整工程与避坑指南)
  • 为什么一个非常大的数的导数是一个非常小的数?
  • 《SpaceOS:空间操作系统白皮书(终极封神版)》——从“像素认知”到“空间计算”,构建现实世界的智能操作体系
  • Nacos 2.2.4在银河麒麟安全版下的完整安装流程:从打包到签名安装
  • 告别PPO的复杂调参?手把手带你用DeepSeek的GRPO算法微调大语言模型
  • NDCG指标详解:从推荐系统到实际应用,如何用它优化你的Top-K推荐列表?
  • SEO优化和SEM推广在不同行业中的应用有何差异
  • IDM助力谷歌云盘大文件高效下载:从失败到成功的实战指南
  • 高级编程 第一节:Python中的时间处理
  • STM32新手避坑指南:用软件模拟IIC驱动OLED,从波形图到代码调试全流程
  • 华为ENSP实战:从零搭建一个400人公司的办公网络(含VLAN、OSPF、NAT完整配置)
  • 用LIBERO Noteboks打造你的专属机器人任务:从自定义物体到算法集成的全流程解析
  • 基于hadoop+spark+hive的音乐推荐系统设计与实现
  • 揭秘R3nzSkin:开源LOL换肤工具的内存操作与架构设计深度探索
  • 从脚本到平台:利用Python与COM API深度集成dSPACE AutomationDesk
  • 24LC512 vs 其他EEPROM:低功耗CMOS存储器的选型指南(含I2C接口对比)
  • 高级编程 第二节:生成器和迭代器
  • Uniswap V3 Swap 机制深度解析:从 computeSwapStep 到流动性区间遍历
  • 什么是共轭表达式?解决了什么问题?
  • Comsol仿真分析:声固耦合对超长水管路声传递损失的影响机制