题目链接

我们能够枚举子集的大小k。求出全部大小为k的子集对答案的贡献。问题就攻克了。

注意到欧拉函数的性质:n=∑φ(d),d|n

莫比乌斯函数性质:∑d|nμ(d)=0n>1

感谢http://blog.csdn.net/u013368721/article/details/47125353

#include <bits/stdc++.h>
using namespace std;
#define prt(k) cerr<<#k" = "<<k<<endl
typedef long long ll;
typedef long long LL;
const ll inf = 0x3f3f3f3f;
const int mod = 258280327;
int exgcd(int a, int b, int &x, int &y)
{
if (b == 0) {
x = 1; y = 0; return a;
} else {
int d = exgcd(b, a%b, y, x);
y -= a/b * x;
return d;
}
}
int inv(int a)
{
int x, y, b = mod;
exgcd(a, b, x, y);
if (x < 0) x += mod;
return x;
}
const int N = 102333;
int phi[N];
int fac[N], vf[N];
void init()
{
fac[0] = 1;
vf[0] = 1;
for (int i=1;i<N;i++) {
phi[i] = i;
fac[i] = (LL) fac[i - 1] * i % mod;
vf[i] = inv(fac[i]);
}
for (int i=2;i<N;i++) if (phi[i]==i) {
for (int j=i;j < N; j+=i)
phi[j] = phi[j] / i * (i - 1);
}
}
int C(int n, int m)
{
return (LL) fac[n] * vf[m] % mod * vf[n - m] % mod;
}
int cnt[N];
int n;
int id[N];
bool cmp(int a, int b)
{
return cnt[a] > cnt[b];
}
// cnt[i] : i 的倍数有多少个
void solve()
{
int ans1 = 0, ans2 = 0;
for (int i=1;i<N;i++) {
int tmp = 0;
for (int j=1;j<N && cnt[id[j]]>=i;j++) {
int idx = id[j];
int t = (LL) C(cnt[idx],i) * phi[idx] % mod;
tmp = (tmp + t) % mod;
}
ans2 = (ans2 + (LL) i * tmp % mod) % mod;
tmp = (LL) tmp * fac[i] % mod * fac[n-i+1] % mod;
ans1 = (ans1 + tmp) % mod;
}
if (ans1 > ans2) printf("Mr. Zstu %d\n", ans1);
else {if (ans1 < ans2)
printf("Mr. Hdu %d\n", ans2);
else
printf("Equal %d\n", ans1);
}
}
int main()
{
init();
while (scanf("%d", &n)==1) {
memset(cnt, 0 ,sizeof cnt);
for (int i=0;i<n;i++) {
int x; scanf("%d", &x);
cnt[x] ++;
}
for (int i=1;i<N;i++) {
id[i] = i;
for (int j=i+i;j<N;j+=i) {
cnt[i] += cnt[j];
}
}
sort(id+1, id+N, cmp);
solve();
}
return 0;
}

HDU 5321 Beautiful Set的更多相关文章

  1. HDU 5321 Beautiful Set (莫比乌斯反演 + 逆元 + 组合数学)

    题意:给定一个 n 个数的集合,然后让你求两个值, 1.是将这个集合的数进行全排列后的每个区间的gcd之和. 2.是求这个集合的所有的子集的gcd乘以子集大小的和. 析:对于先求出len,len[i] ...

  2. HDU 5321 Beautiful Set 漂亮集合

    题意:给定一个集合,含有n个数.浙理工先生和杭电先生各自有计算这个集合漂亮值的方法. 浙理工先生的计算方法是:对于这个n个数的某个排列,此排列的漂亮值为这个排列全部的区间最大公约数之和.然后这个集合的 ...

  3. HDU 5062 Beautiful Palindrome Number(数学)

    主题链接:http://acm.hdu.edu.cn/showproblem.php? pid=5062 Problem Description A positive integer x can re ...

  4. HDU - 6351 Beautiful Now

    Beautiful Now HDU - 6351 Anton has a positive integer n, however, it quite looks like a mess, so he ...

  5. HDU Redraw Beautiful Drawings 推断最大流是否唯一解

    点击打开链接 Redraw Beautiful Drawings Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 65536/65536 ...

  6. HDU 5179 beautiful number 数位dp

    题目链接: hdu: http://acm.hdu.edu.cn/showproblem.php?pid=5179 bc(中文): http://bestcoder.hdu.edu.cn/contes ...

  7. HDU 6351.Beautiful Now-暴力、全排列、思维 (2018 Multi-University Training Contest 5 1002)

    2018 Multi-University Training Contest 5 6351.Beautiful Now 题意就是交换任意两个数字,问你交换k次之后的最小值和最大值. 官方题解: 哇塞, ...

  8. hdu - 4782 - Beautiful Soup(模拟)

    题意:输出一堆乱排版的html标签,去多余空字符,转换为按缩进输出. 题目链接:pid=4782">http://acm.hdu.edu.cn/showproblem.php?pid= ...

  9. hdu 5179 beautiful number

    beautiful number 问题描述 令 A = \sum_{i=1}^{n}a_i * {10}^{n-i}(1\leq a_i \leq 9)A=∑​i=1​n​​a​i​​∗10​n−i​ ...

随机推荐

  1. 08-hibernate注解-多对多双向外键关联

    多对多双向外键 双方持有对方的集合对象 其中一方设置: //教师类 @ManyToMany(mappedBy="teachers")   //mappedby表示教师交给学生来控制 ...

  2. js 父窗口与子窗口交互

    showModalDialog 父窗口 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> ...

  3. unity3d控制模型的运动

    这里就不多做解释了,直接上代码,只为了备忘. public class HeroMove : MonoBehaviour { private float speed;//人物行动速度 private ...

  4. python-创建一个本地txt文本

    def text_create(name, msg): desktop_path = '/Users/Hou/Desktop/' full_path = desktop_path + name + ' ...

  5. Json数组操作小记 及 JSON对象和字符串之间的相互转换

    [{"productid":"1","sortindex":"2"},{"productid":&q ...

  6. unity, read text file

    using System.IO; //test read txt        //Resources.Load(...) loads an asset stored at path in a Res ...

  7. Android架构须知

    1.了解不同版本号的特性包含IDE的. 如:AsyncTask3.0之后和之前的差别.Android 5.0的新的API.Android 6.0 不能用HttpClient .AS2.0的新特性 等等 ...

  8. Effective Java-第二章

    第1章 如何最有效地使用Java程序设计语言机器基本类库:java.lang,java.util,java.util.concurrent和java.io. Sun JDK1.6_05版本 第2章 创 ...

  9. Atitit. IE8.0 显示本地图片预览解决方案 img.src=本地图片路径无效的解决方案

    Atitit. IE8.0 显示本地图片预览解决方案 img.src=本地图片路径无效的解决方案 1. IE8.0 显示本地图片 img.src=本地图片路径无效的解决方案1 1.1. div来完成  ...

  10. [k8s]k8s架构图解

    k8s架构图解 启动参数及证书梳理 master端必须要装flannel 注: flannel网络能确保各节点间 Pod 网段实现互通 master 节点与 node 节点上的 Pods 通过 Pod ...