agc38C LCMs
https://atcoder.jp/contests/agc038/tasks/agc038_c
题意:给\(a_i\),求\(\sum_{i=1}^n\sum_{j=i+1}^nlcm(a_i,a_j)\)
题解:设\(\sum_{d|i}c_d=\frac{1}{i}\),\(O(nlogn)\)求出\(c_i\)
\(\sum_{i=1}^n\sum_{j=i+1}^nlcm(a_i,a_j)\)
\(=\sum_{i=1}^n\sum_{j=i+1}^n\frac{a_i\cdot a_j}{gcd(a_i,a_j)}\)
\(=\sum_{i=1}^n\sum_{j=i+1}^na_i\cdot a_j \cdot \sum_{d|a_i,d|a_j}c_d\)
\(=\sum_{i=1}^{ma}c_i\sum_{d|a_i,d|a_j,i<j}a_i\cdot a_j\)
总复杂度\(O(nlogn)\)
//#pragma GCC optimize(2)
//#pragma GCC optimize(3)
//#pragma GCC optimize(4)
//#pragma GCC optimize("unroll-loops")
//#pragma comment(linker, "/stack:200000000")
//#pragma GCC optimize("Ofast,no-stack-protector")
//#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
#include<bits/stdc++.h>
//#include <bits/extc++.h>
#define fi first
#define se second
#define db double
#define mp make_pair
#define pb push_back
#define mt make_tuple
//#define pi acos(-1.0)
#define ll long long
#define vi vector<int>
#define mod 998244353
#define ld long double
//#define C 0.5772156649
#define ls l,m,rt<<1
#define rs m+1,r,rt<<1|1
#define pll pair<ll,ll>
#define pil pair<int,ll>
#define pli pair<ll,int>
#define pii pair<int,int>
#define ull unsigned long long
#define bpc __builtin_popcount
#define base 1000000000000000000ll
#define fin freopen("a.txt","r",stdin)
#define fout freopen("a.txt","w",stdout)
#define fio ios::sync_with_stdio(false);cin.tie(0)
#define mr mt19937 rng(chrono::steady_clock::now().time_since_epoch().count())
inline ll gcd(ll a,ll b){return b?gcd(b,a%b):a;}
inline void sub(ll &a,ll b){a-=b;if(a<0)a+=mod;}
inline void add(ll &a,ll b){a+=b;if(a>=mod)a-=mod;}
template<typename T>inline T const& MAX(T const &a,T const &b){return a>b?a:b;}
template<typename T>inline T const& MIN(T const &a,T const &b){return a<b?a:b;}
inline ll mul(ll a,ll b,ll c){return (a*b-(ll)((ld)a*b/c)*c+c)%c;}
inline ll qp(ll a,ll b){ll ans=1;while(b){if(b&1)ans=ans*a%mod;a=a*a%mod,b>>=1;}return ans;}
inline ll qp(ll a,ll b,ll c){ll ans=1;while(b){if(b&1)ans=mul(ans,a,c);a=mul(a,a,c),b>>=1;}return ans;}
using namespace std;
//using namespace __gnu_pbds;
const ld pi = acos(-1);
const ull ba=233;
const db eps=1e-5;
const ll INF=0x3f3f3f3f3f3f3f3f;
const int N=1000000+10,maxn=2000000+10,inf=0x3f3f3f3f;
ll a[N],b[N],c[N];
int main()
{
int n,ma=0;scanf("%d",&n);
for(int i=1;i<=n;i++)scanf("%lld",&a[i]),b[a[i]]++,ma=max(ma,(int)a[i]);
ll ans=0;
for(int i=1;i<=ma;i++)c[i]=qp(i,mod-2);
for(int i=1;i<=ma;i++)
for(int j=2*i;j<=ma;j+=i)
sub(c[j],c[i]);
for(int i=1;i<=ma;i++)
{
ll te=0,p=0;
for(int j=i;j<=ma;j+=i)
add(te,b[j]*j%mod),add(p,b[j]*j%mod*j%mod);
te=((te*te-p)%mod+mod)%mod;
te=te*qp(2,mod-2)%mod;
add(ans,te*c[i]%mod);
}
printf("%lld\n",ans);
return 0;
}
/********************
********************/
agc38C LCMs的更多相关文章
- LCMS
LCMS(LearningContent Management System) 即学习内容管理系统
- CF1166E The LCMs Must be Large
CF1166E The LCMs Must be Large 构造趣题 正着推其实很不好推 不妨大力猜结论 如果两两集合都有交,那么一定可以 证明: 1.显然如果两个集合没有交,一定不可以 2.否则给 ...
- Mol Cell Proteomics. | Prediction of LC-MS/MS properties of peptides from sequence by deep learning (通过深度学习技术根据肽段序列预测其LC-MS/MS谱特征) (解读人:梅占龙)
通过深度学习技术根据肽段序列预测其LC-MS/MS谱特征 解读人:梅占龙 质谱平台 文献名:Prediction of LC-MS/MS properties of peptides from se ...
- Fast and accurate bacterial species identification in urine specimens using LC-MS/MS mass spectrometry and machine learning (解读人:闫克强)
文献名:Fast and accurate bacterial species identification in urine specimens using LC-MS/MS mass spectr ...
- AT5200 [AGC038C] LCMs 莫比乌斯反演
LINK:LCMs 随便找了道题练习了一下莫比乌斯反演 式子有两个地方化简错误 导致查了1h的错. 讲一下大致思路 容易发现直接做事\(n^2logn\)的. 观察得到数字集合大小为1e6. 可以设\ ...
- 【讲座】朱正江——基于LC-MS的非靶向代谢组学
本次课程主题为<基于LC-MS的非靶向代谢组学>,主要分为代谢组学简介.代谢组学技术简介.非靶向代谢组学方法和数据采集.非靶向代谢组学数据分析和代谢物结构鉴定几个方面. 一.代谢组简介 基 ...
- CodeForces 1166E The LCMs Must be Large
题目链接:http://codeforces.com/problemset/problem/1166/E 说明 LCM(一个集合) 为这个集合中所有元素的最小公倍数. 如果$A \subseteq B ...
- Codeforces Round #561 (Div. 2) E. The LCMs Must be Large(数学)
传送门 题意: 有 n 个商店,第 i 个商店出售正整数 ai: Dora 买了 m 天的东西,第 i 天去了 si 个不同的个商店购买了 si 个数: Dora 的对手 Swiper 在第 i 天去 ...
- 数位DP入门
HDU 2089 不要62 DESC: 问l, r范围内的没有4和相邻62的数有多少个. #include <stdio.h> #include <string.h> #inc ...
随机推荐
- 自定义可点击的ImageSpan并在TextView中内置“View“
有的时候可能想在TextView中添加一些图片,比如下图,发短信输入联系人时,要把联系人号码换成一个图片,但这个图片无法用固定的某张图,而是根据内容进行定制的,这更像一个view. 当然,如果你不是v ...
- vue与webpack
由于最近在vue-cli生成的webpack模板项目的基础上写一个小东西,开发过程中需要改动到build和config里面一些相关的配置,所以刚好趁此机会将所有配置文件看一遍,理一理思路,也便于以后修 ...
- Cause: java.sql.SQLDataException: ORA-01861: 文字与格式字符串不匹配
- 2018-2-13-win10-uwp-让焦点在点击在页面空白处时回到textbox中
title author date CreateTime categories win10 uwp 让焦点在点击在页面空白处时回到textbox中 lindexi 2018-2-13 17:23:3 ...
- wbinfo - 向winbind服务查询信息
总览 SYNOPSIS wbinfo [-a user%password] [-c username] [-C groupname] [--domain domain] [-I ip] [-s sid ...
- BCZM : 1.15
数独 解法一:广度优先搜索. 解法二:先填满中间矩阵,其他区域通过矩阵置换求出.
- 处理 vagrant Homestead 响应慢小记
环境 Homestead box: Homestead: v8.2.0 vagrant: 2.2.4 在Homestead中 安装nfs-kernel-server sudo apt-get inst ...
- exports和module.exports的区别——学习笔记
一开始,exports和module.exports都指向空对象(同一内存块),exports是引用 module.exports的值.module.exports 被改变的时候,exports不会被 ...
- Spring Boot学习笔记一
Spring Boot简介 前言:本章简单介绍Spring boot的使用. (第二天springboot的学习之路:https://www.cnblogs.com/LBJLAKERS/p/12003 ...
- 帝国cms批量更新内容页
系统设置->数据更新->批量更新信息页地址 系统设置->数据更新->数据整理: 再更新整站主要页面即可