HDU 5321 Beautiful Set
题目链接
我们能够枚举子集的大小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的更多相关文章
- HDU 5321 Beautiful Set (莫比乌斯反演 + 逆元 + 组合数学)
题意:给定一个 n 个数的集合,然后让你求两个值, 1.是将这个集合的数进行全排列后的每个区间的gcd之和. 2.是求这个集合的所有的子集的gcd乘以子集大小的和. 析:对于先求出len,len[i] ...
- HDU 5321 Beautiful Set 漂亮集合
题意:给定一个集合,含有n个数.浙理工先生和杭电先生各自有计算这个集合漂亮值的方法. 浙理工先生的计算方法是:对于这个n个数的某个排列,此排列的漂亮值为这个排列全部的区间最大公约数之和.然后这个集合的 ...
- HDU 5062 Beautiful Palindrome Number(数学)
主题链接:http://acm.hdu.edu.cn/showproblem.php? pid=5062 Problem Description A positive integer x can re ...
- HDU - 6351 Beautiful Now
Beautiful Now HDU - 6351 Anton has a positive integer n, however, it quite looks like a mess, so he ...
- HDU Redraw Beautiful Drawings 推断最大流是否唯一解
点击打开链接 Redraw Beautiful Drawings Time Limit: 3000/1500 MS (Java/Others) Memory Limit: 65536/65536 ...
- HDU 5179 beautiful number 数位dp
题目链接: hdu: http://acm.hdu.edu.cn/showproblem.php?pid=5179 bc(中文): http://bestcoder.hdu.edu.cn/contes ...
- HDU 6351.Beautiful Now-暴力、全排列、思维 (2018 Multi-University Training Contest 5 1002)
2018 Multi-University Training Contest 5 6351.Beautiful Now 题意就是交换任意两个数字,问你交换k次之后的最小值和最大值. 官方题解: 哇塞, ...
- hdu - 4782 - Beautiful Soup(模拟)
题意:输出一堆乱排版的html标签,去多余空字符,转换为按缩进输出. 题目链接:pid=4782">http://acm.hdu.edu.cn/showproblem.php?pid= ...
- hdu 5179 beautiful number
beautiful number 问题描述 令 A = \sum_{i=1}^{n}a_i * {10}^{n-i}(1\leq a_i \leq 9)A=∑i=1nai∗10n−i ...
随机推荐
- CSS优先级的详细解说
一.什么是CSS优先级? 所谓CSS优先级,即是指CSS样式在浏览器中被解析的先后顺序. 二.CSS优先级规则 既然样式有优先级,那么就会有一个规则来约定这个优先级,而这个“规则”就是本次所需要讲的重 ...
- Python 入门demo第二篇
循环执行逻辑 #-*- coding: UTF-8 -*- import time import urllib2 def task(i): urlstr='http://baidu.com' html ...
- linux下自己下载的程序装哪?
有两个选择: /usr/local:类似于C:\Program Files /opt:类似于D:\soft 其实都可以,关键是保持一致.
- struts 防止重复提交表单
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC &qu ...
- 如何监控MYSQL消耗服务器资源
http://258xiaolei-sina-com.iteye.com/blog/764665 启动Mysql时加参数--log-slow-queries来记录执行时间超过long_query_ti ...
- C# 视频监控系列:学习地址汇总
原文地址:http://www.cnblogs.com/over140/archive/2009/04/07/1429308.html 前言 对于视频监控系统大家应该是不陌生的,实施的路况信息.地铁. ...
- linuxubuntu升级.net core版本到2.0
直接看这里 https://www.microsoft.com/net/core#linuxubuntu
- Ant—使用Ant构建简单Java项目(三)
博客<Ant-使用Ant构建简单Java项目(二)>我们简化了运行Test类中main方法须要运行的命令,本博客来介绍一下如何使build.xml文件和当中使用property标签定义的属 ...
- Jumpserver web界面跳板机
Jumpserver.org 普通用户 仪表盘 查看主机 上传下载 访问官网 欢迎使用Jumpserver开源跳板机系统 帮助 Log out 查看资产 仪表盘 资产管理 查看资产 主机详细信息列表 ...
- IIS6.0应用程序池回收(转载)
这段时间公司的程序经常出现问题,然后整个应用程序就不能访问了,我们的服务器版本:window 2003 SP1,IIS6.0,没有安装Microsoft Visual Studio .NET . 问题 ...