HDU5514 Frogs
/*
HDU5514 Frogs
http://acm.hdu.edu.cn/showproblem.php?pid=5514
容斥原理
*
*
*/
#include <cstdio>
#include <cmath>
#include <algorithm>
//#define test
using namespace std;
const long long Nmax=1e5;
long long n,m,a[Nmax];
long long book[Nmax];
long long p[Nmax];
int cnt;
long long num[Nmax];
long long gcd(long long a,long long b)
{
if(b==0LL)
return a;
return gcd(b,a%b);
} int main()
{
long long t;
#ifdef test
while()
{
long long a,b;
scanf("%lld%lld",&a,&b);
printf("%lld\n",gcd(a,b));
}
#endif
scanf("%lld",&t);
for(long long ttt=;ttt<=t;ttt++)
{
scanf("%lld%lld",&n,&m);
int flag=;
for(long long i=;i<=n;i++)
{
scanf("%lld",&a[i]);
a[i]=gcd(a[i],m);
if(a[i]==)
flag=;
}
if(flag)
{
long long ans=(m-1LL)*m/2LL;
printf("Case #%lld: ",ttt);
printf("%lld\n",ans);
continue;
}
long long ans=0LL;
cnt=;
for(int i=;i*i<=m;i++)
{
if(m%i)
continue;
p[++cnt]=i;
if(i*i!=m)
p[++cnt]=m/i;
}
sort(p+,p++cnt);
for(int i=;i<=cnt;i++)
book[i]=num[i]=;
for(int i=;i<=n;i++)
{
for(int j=;j<=cnt;j++)
if(p[j]%a[i]==)
book[j]=;
}
for(int i=;i<=cnt;i++)
{
if(book[i]!=num[i])
{
long long tmp=m/p[i];
ans+=tmp*(tmp-1LL)/2LL*p[i]*(book[i]-num[i]);
tmp=book[i]-num[i];
for(int j=i+;j<=cnt;j++)
if(p[j]%p[i]==)
num[j]+=tmp;
}
} printf("Case #%lld: ",ttt);
printf("%lld\n",ans);
}
return ;
}
HDU5514 Frogs的更多相关文章
- 从HDU2588:GCD 到 HDU5514:Frogs (欧拉公式)
The greatest common divisor GCD(a,b) of two positive integers a and b,sometimes written (a,b),is the ...
- 【做题】hdu5514 Frogs——另类容斥
题意是给出n个m的约数,问[0,m-1]中至少被其中一个约数整除的整数和.(n<=10000,m<=1000000000) 直接容斥的话,是2^n再拖个log的复杂度,加上当前的数大于m时 ...
- POJ 1659 Frogs' Neighborhood(Havel-Hakimi定理)
题目链接: 传送门 Frogs' Neighborhood Time Limit: 5000MS Memory Limit: 10000K Description 未名湖附近共有N个大小湖泊L ...
- CF# Educational Codeforces Round 3 F. Frogs and mosquitoes
F. Frogs and mosquitoes time limit per test 2 seconds memory limit per test 512 megabytes input stan ...
- Frogs' Neighborhood
Frogs' Neighborhood Time Limit: 5000MS Memory Limit: 10000K Total Submissions: 7920 Accepted: 33 ...
- HDU 5514 Frogs 容斥定理
Frogs Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5514 De ...
- poj 1659 Frogs' Neighborhood (DFS)
http://poj.org/problem?id=1659 Frogs' Neighborhood Time Limit: 5000MS Memory Limit: 10000K Total S ...
- poj 1659 Frogs' Neighborhood (贪心 + 判断度数序列是否可图)
Frogs' Neighborhood Time Limit: 5000MS Memory Limit: 10000K Total Submissions: 6076 Accepted: 26 ...
- codeforces 609F. Frogs and mosquitoes 二分+线段树
题目链接 F. Frogs and mosquitoes time limit per test 2 seconds memory limit per test 512 megabytes input ...
随机推荐
- linux高级技巧:rsync同步(二)
1.配置两个节点同步 上个帖子已经展示了同步一个主机的方法.这次我们再加入一个要同步的主机. 方法上并无二质. 1.首先显示我们的控制台: ...
- Composer 很重要很重要 内核 原理
话题先攒着,过来再来写 先来一张原理图 composer的原理和其他的包管理工具都是一样的,只是实现的细节有些不同,例如yum,例如brew,例如apt-get还有packets. 使用自己的comp ...
- 使用美橙主机建站(jsp+mysql+tomcat建站)
1.注冊美橙互联账号:http://www.cndns.com/ 2.选择橙云主机: 3.选择你须要的主机类型. 3.能够随时与客服进行沟通.购买完毕后登陆 管理中心 4.点击左边 主机类管理--&g ...
- session理解
Session,底层的实现就是一个Map<集合>,有些Data在Server内存中,APP要分层.Data在各个层之间肯定要以一种形态传递(泛型),之前Servlet dao.getLis ...
- h5-8 canvas
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- h5-6 canvas
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- poj 2031--Building a Space Station(prim)
Building a Space Station Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 6064 Accepte ...
- 利用js实现进入页面首先执行刷新操作,且只刷新一次
让页面进行刷新,可以使用location.reload()方法,但是这种方法会让页面一直不断的刷新,这是因为当页面加载完成以后,我们让它刷新一次,那么浏览器就会重新向服务器请求数据, 界面会重新加载, ...
- css3动画简单案例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 【技术累积】【点】【java】【4】日志级别
闲聊 水文也是文,写总比不写好. 日志级别 虽然对其他语言的日志系统也不甚了解,但还是感觉Java的日志有些麻烦,当然也可以说是发展已久,多有变化,多有完善吧. 从日志级别来说,有从高到低的八个级别: ...