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 ...
随机推荐
- ionicframework(一)
官方网站 http://ionicframework.com 然后在Get Start里面可以了解到,安装Ionic需要安装 Node.js. 文件来源 http://www.tuicool.c ...
- 经常使用的 WEB server
对于刚開始学习的人来说,或许自己能够写出一些简单的演示样例DEMO,但却纠结于不知道应该怎样才干訪问自己的页面,这里进行了一些简单的WEBserver总结.便于新朋友配置使用 静态HTML页面 对于静 ...
- SQL中的重要语句
1.查询每个数据库有多少空间被浪费 如果你想知道在你数据库设计后,每页有多少空间浪费掉,你可 以通过下列动态管理视图(DMV)查询下缓冲池:sys.dm_os_buffer_descriptors 从 ...
- 单元测试JUnit 4 (一)——keeps the bar green to keeps the code clean
1. 导读 Junit是一个可编写重复测试的简单框架,是基于Xunit架构的单元测试框架的实例.Junit4最大的改进是大量使用注解(元数据),很多实际执行过程都在Junit的后台做完了,而且写tes ...
- sql server 数据加密
select EncryptByPassPhrase('hksjlm',qlrmc)jmsj,* into jmqlr from qlr where qlbh in('5201411120005',' ...
- Javascript 判断网页横竖屏
本篇文章由:http://xinpure.com/javascript-to-determine-page-anyway-screen/ Html5 流行至今,自适应的网站已经多如牛毛,但是横竖屏的切 ...
- PHP中文乱码的常见解决方法总结
PHP中文乱码是PHP开发中的常见问题之一.PHP中文乱码有时发生在网页本身,有些产生在于MySQL交互的过程中,有时与操作系统有关.下面进行一番总结. 一.首先是PHP网页的编码 1. php文件本 ...
- jQuery Growl 插件(消息提醒)
jQuery Growl 插件(消息提醒) 允许您很容易地在一个覆盖层显示反馈消息.消息会在一段时间后自动消失,不需要单击"确定"按钮等.用户也可以通过移动鼠标或点击关闭按钮加快隐 ...
- js+css简单效果(幕布,跑马灯)
2.js普通的盒子,css的优先级 css的优先级 !important >>>>> style 行内样式 >>>>> #id选择器 # ...
- C# EF使用性能消耗列表 https://msdn.microsoft.com/zh-cn/library/cc853327.aspx
性能注意事项(实体框架) .NET Framework (current version) 其他版本 本主题介绍 ADO.NET 实体框架的性能特征,并提供一些注意事项帮助改善实体框架应用程序 ...