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

AT_abc471_e

AtCoder - abc471_e

闲得蛋疼写片

题解

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=2e6+5;
const ll mod=998244353;ll fac[maxn],ifac[maxn];ll powmod(ll x,ll y) {if (!y) return 1;ll t=powmod(x,y/2);if (y&1) return t*t%mod*x%mod;else return t*t%mod;
}ll C(ll n,ll m) {if (m<0||n<0||n<m) return 0;return fac[n]*ifac[m]%mod*ifac[n-m]%mod;
}
ll n,k;
void solve() {cin>>n>>k;ll s1=0,s2=0;for (int i=1;i<=n;i++) {ll x;cin>>x;s1=(s1+x)%mod;s2=(s2+x*x%mod)%mod;}ll ans=((s1*s1%mod*C(n-2,k-2)%mod-s2*C(n-2,k-2)%mod+mod)%mod+s2*C(n-1,k-1)%mod)%mod;cout<<ans<<'\n';
}void prework() {fac[0]=1;for (ll i=1;i<maxn;i++) fac[i]=fac[i-1]*i%mod;ifac[maxn-1]=powmod(fac[maxn-1],mod-2);for (ll i=maxn-2;i>=0;i--) ifac[i]=ifac[i+1]*(i+1)%mod;
}int main() {ios::sync_with_stdio(0);prework();int t=1;while (t--) solve();
}

\[\displaystyle(\sum_{x\in{S}} x)^{2}\\ =(x_{1}+x_{2}+...+x_{k})·(x_{1}+x_{2}+...+x_{k})+...+(x_{n-k+1}+x_{n-k+2}+...+x_{n})·(x_{n-k+1}+x_{n-k+2}+...+x_{n}) \]

显然最终可以变成一个式子:(其中A,B是系数)

\[A \times \displaystyle\sum_{i=1}^{n} {x_{i}^{2}} + B \times \displaystyle\sum_{i,j\in[1,n],i\neq j}{x_ix_j} \]

考虑每个数自己和自己相乘的次数

即在确定了一个数的情况下,在剩下的 \(n-1\) 个数中再选 \(k-1\) 个数的方案:\(A=C^{k-1}_{n-1}\)

考虑两个每个数互相乘的次数

即在确定了两个数的情况下,在剩下的 \(n-2\) 个数中再选 \(k-2\) 个数的方案:\(B=C^{k-2}_{n-2}\)

所以答案就是

\[C^{k-1}_{n-1} \times \displaystyle\sum_{i=1}^{n} {x_{i}^{2}} + C^{k-2}_{n-2} \times \displaystyle\sum_{i,j\in[1,n],i\neq j}{x_ix_j}\\ =C^{k-1}_{n-1} \times \displaystyle\sum_{i=1}^{n} {x_{i}^{2}}+C^{n-2}_{k-2}\times (\displaystyle\sum^{n}_{i=1}{x})^{2}-C^{n-2}_{k-2} \times \displaystyle\sum_{i=1}^{n} {x_{i}^{2}} \]

根据初中数学知识转化一下式子就可以O(n) 做了

http://www.jsqmd.com/news/1406346/

相关文章:

  • UE5蓝图实战:鼠标点击触发角色近战攻击动画与蒙太奇播放
  • TDengine REST API 核心功能与实战应用指南
  • 如何用 Lonkero 测试 GraphQL API?9 种攻击手法全解析
  • 2026同城搬家寄大件哪个快递便宜 本地大件寄件低价渠道汇总 - 快递物流资讯
  • MPTCPv1调度器实现与性能优化指南
  • 澳洲留学生医保OSHC怎么买:第三方问答型场景拆解与反例 - 优企甄选
  • UE5 Niagara实战:从原理到应用,打造动态武器拖尾特效
  • Altium Designer快捷键全解析:从原理到实战的效率提升指南
  • Windows Defender无法启动?系统化排查与修复指南
  • Android开发中AI助手集成指南与优化实践
  • 小程序转 Vue3 终极实战指南:90% 代码自动转换,迁移周期从半年压缩到两周
  • TCP可靠传输核心机制:从滑动窗口到拥塞控制的实战解析
  • 杭州美妆个护行业GEO服务商代理加盟怎么选?本地靠谱推荐与落地指南 - 小随科技
  • 沈阳改灯专业靠谱门店龙兴车灯(龙哥改灯)16 年专业车灯升级首推门店 - 优企甄选
  • 电信19元大流量卡真相|正规渠道实测、行业潜规则、避坑全攻略 - 中凡科技
  • pkg-wrapper 原理揭秘:Esmx 如何解决 CJS 包命名导出的历史难题?
  • 桂林改灯哪家好?三哥改灯升级深度评测推荐 ——13 年车灯升级老店q - 优企甄选
  • 2026沈阳豆包搜索优化公司推荐 实用选择指南 - 贾先生GEO
  • Windows UAC拦截问题全解析:从解除锁定到组策略配置
  • 百度网盘 Mac 版提速终极指南:一个插件,告别 100KB/s 的蜗牛时代
  • 2026海口市公司代理记账按年托管首选哪家?海口当地专业正规代理记账公司代办记账报税工商年检,合规经营好伙伴 - 优企甄选
  • 断网也能流畅翻译!Argos Translate 离线翻译库三分钟极速上手
  • Linux实验环境搭建与核心操作实战指南
  • 2026年山东钢丸厂家盘点及采购参考 中兴金属工艺与实力梳理 - 拜了拜了
  • 六安装修装饰行业如何选择GEO服务商?本地代理加盟靠谱推荐指南 - 小随科技
  • Windows系统DLL丢失问题深度解析:从api-ms-win-core-libraryloader-l1-2-0.dll错误到系统修复
  • 2026年泉州装修公司哪家靠谱?看完这篇避坑指南少花冤枉钱 - 滚动商讯
  • 百度网盘Mac版提速实测:一个开源插件,把下载速度从100KB/s拉到7MB/s
  • 7 Scenes与NRGBD数据集评测:FastVGGT跨场景性能表现
  • macOS窗口管理工具 Loop 快速上手指南:免费开源的优雅之选