ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

打卡信奥刷题(3512)用C++实现信奥题 P10867 [HBCPC2024] Points on the Number Axis A

打卡信奥刷题(3512)用C++实现信奥题 P10867 [HBCPC2024] Points on the Number Axis A P10867 [HBCPC2024] Points on the Number Axis A题目描述Alice 正在数轴上玩一个单人游戏。数轴上有nnn个点。每次玩家选择两个点。这两个点将被移除并添加它们的中点。当数轴上只剩下一个点时游戏结束。形式上如果选择的两个点是xix_ixi​和xjx_jxj​那么在操作后将添加xixj2\dfrac{x_ix_j}{2}2xi​xj​​。为了愉快地进行这个游戏Alice 总是随机选择两个点。现在 Alice 有一个问题最后一个点的期望位置在哪里。可以证明答案可以表示成pq\dfrac{p}{q}qp​的形式你只需要输出p⋅q−1 mod 998 244 353p\cdot q^{-1} \bmod 998\,244\,353p⋅q−1mod998244353的值。输入格式第一行包含一个整数nnn(1≤n≤1061 \le n \le 10^61≤n≤106)。第二行包含nnn个整数xix_ixi​(0≤x1≤⋯≤xn998 244 3530 \le x_1 \le \dots \le x_n 998\,244\,3530≤x1​≤⋯≤xn​998244353)表示第iii个点的位置。注意两个点可能在同一位置。输出格式输出一个整数即答案对998 244 353998\,244\,353998244353取模后的结果。输入输出样例 #1输入 #13 1 2 4输出 #1332748120说明/提示由 ChatGPT 4o 翻译C实现#includebits/stdc.h#definePIIpairint,int#defineintlonglong#defineDBdoubleusingnamespacestd;constintN1e610,MOD998244353;intn,x,sum;intkuaisu(intx,inty){intret1;while(y){if(y1)retret*x%MOD;xx*x%MOD;y1;}returnret;}signedmain(){scanf(%lld,n);for(inti1;in;i){scanf(%lld,x);sum(xsum)%MOD;}printf(%lld\n,sum*kuaisu(n,MOD-2)%MOD);return0;}后续接下来我会不断用C来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现记录日常的编程生活、比赛心得感兴趣的请关注我后续将继续分享相关内容
返回列表