2022 ICPC 杭州站
A
问题等价于求
记
问题转换化为
令
#include <bits/stdc++.h> using ll = long long; int main() { std::ios::sync_with_stdio(false); std::cin.tie(nullptr); ll n,m; std::cin >> n >> m; ll sum = 0; for(int i = 0 ; i < n ; ++i) { ll x ; std::cin >> x; ( sum += x ) %= m; } std::function<ll(ll,ll,ll&,ll&)> exgcd = [&](ll a,ll b,ll &x1,ll &y1) { if(!b) { x1 = 1 , y1 = 0; return a; } ll d = exgcd(b , a % b , x1 , y1); ll x2,y2; x2 = x1 , y2 = y1; x1 = y2; y1 = x2 - a / b * y2; return d; }; ll x_s,x_d; ll g1 = exgcd(n , (n + 1) * n / 2 , x_s , x_d); ll x_g1,y_m; ll g2 = exgcd(g1 , m , x_g1 , y_m); ll q = (m - sum + g2 - 1) / g2; ll ans = (sum + q * g2 % m) % m; ll s = q * x_g1 % m * x_s % m , d = q * x_g1 % m * x_d % m; s = ( (s % m) + m ) % m , d = ( (d % m) + m ) % m; std::cout << ans << '\n'; std::cout << s << ' ' << d << '\n'; return 0; }
本文作者:xqy2003
本文链接:https://www.cnblogs.com/xqy2003/p/17539278.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
蒟蒻一枚 坐标山西大学
欢迎你的到来(??);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步