http://acm.hdu.edu.cn/showproblem.php?pid=5212

题意:忽略。。

题解:把题目转化为求每个gcd的贡献。(http://www.cnblogs.com/z1141000271/p/7419717.html 和这题类似 反向容斥)这里先用容斥写了,mobious的之后再说吧23333。

然后比较想说的是这个调和级数的复杂度 nlog(n)

ac代码:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <queue>
#include <algorithm>
#define mt(a) memset(a,0,sizeof(a))
using namespace std;
const int mod=;
typedef long long ll;
ll a[];
ll num[];
ll cnt[];
ll get(ll n)
{
int f=;
f=n*n;
f%=mod;
return f;
}
int main()
{
ll n;
while(~scanf("%lld",&n))
{
ll mx=-;
mt(a);
mt(cnt);
mt(num);
for(int i=;i<=n;i++)
{
scanf("%lld",&a[i]);
num[a[i]]++;
mx=max(mx,a[i]);
}
ll ans=;
for(ll i=mx;i>=;i--)
{
int ret=num[i];
for(int j=i*;j<=mx;j+=i)
{
cnt[i]=(cnt[i]-cnt[j]+mod)%mod;
ret+=num[j];
}
// cout<<ret<<endl;
cnt[i]+=get(ret);//想清楚。
cnt[i]+=mod;
cnt[i]%=mod;
ll p=i*(i-)%mod;
ans=(ans+(cnt[i]*p))%mod;
}
cout<<ans<<endl;
}
return ;
}

最新文章

  1. ruby不能识别中文的一个坑
  2. iOS--页面跳转(UITableView)
  3. ASP.NET MVC WebGrid &ndash; Performing true AJAX pagination and sorting 【转】
  4. 【转】Spark-Sql版本升级对应的新特性汇总
  5. .Net neatupload上传控件实现文件上传的进度条
  6. Cocos2dx+lua中Color参数的坑
  7. Cadence ORCAD CAPTURE元件库介绍
  8. Android 内核初识(6)SystemServer进程
  9. ajax提交富文本,内容被截断,解决方法及思路
  10. Hive学习之三 《Hive的表的详解和应用案例详解》
  11. C# Dev XtraReport 简单测试
  12. Windows和Linux下 Java开发ping工具类
  13. C#Lambda表达式详解
  14. 同一页面的两个Iframe获取数据
  15. Swift-Swift的Singleton三种写法
  16. html5shiv 是一个针对 IE 浏览器的 HTML5 JavaScript 补丁,目的是让 IE 识别并支持 HTML5 元素。
  17. 133个Java面试问题列表
  18. some language grammars
  19. spring java 方式配置JedisPool Bean
  20. Spring Cloud程序报错总结

热门文章

  1. npm package.json配置整理
  2. ISO/IEC 9899:2011 条款6.4.8——预处理数字
  3. python使用redis实现协同控制的分布式锁
  4. Rust基础笔记:闭包
  5. Hive之insert into与insert overwrite区别
  6. 上交所跨市场ETF申购赎回实时回报
  7. jquery取选中的checkbox的值
  8. DTCMS会员中心添加新页面
  9. iOS-UITableView的使用
  10. AD19如何单独设置单个焊盘与铜皮的连接方式