hdu5656
来源:互联网 发布:正规医院有男科吗 知乎 编辑:程序博客网 时间:2024/06/05 16:44
求组数的所有不重复子集的最大公约数之和
#include<cstdio>
#include<cstring>
using namespace std;
long long f[1010],g[1010];
long long ans=0;
int t,n,num[1010],a[1010];
long long quick_pow(int a,int x,int p)
{
long long sum=a,ans=1;
while (x>0)
{
if (x%2==1)
ans=ans*sum%p;
sum=sum*sum%p;
x=x/2;
}
return ans;
}
void init()
{
scanf("%d",&t);
}
void work()
{
while (t--)
{
scanf("%d",&n);
for (int i=1;i<=n;i++)
scanf("%d",&a[i]);
memset(num,0,sizeof(num));
for (int i=1;i<=n;i++)
for (int j=1;j<=1000;j++)
if (a[i]%j==0)
num[j]++;
for (int i=1;i<=1000;i++)
f[i]=quick_pow(2,num[i],100000007)-1;
for (int i=1000;i>=1;i--)
{
g[i]=f[i];
for (int j=2;j*i<=1000;j++)
g[i]=(g[i]-g[j*i]+100000007)%100000007;
}
ans=0;
for (int i=1;i<=1000;i++)
ans=(ans+g[i]*i%100000007)%100000007;
printf("%I64d\n",ans);
}
}
int main()
{
init();
work();
return 0;
}
- hdu5656
- hdu5656 dp
- hdu5656 CA Loves GCD
- hdu5656 CA Loves GCD
- HDU5656 所有子集GCD和
- HDU5656 CA Loves GCD (BC)
- 【HDU5656】CA Loves GCD——动态规划
- 【HDU5656】CA Loves GCD,容斥思想与乱搞
- IP地址类
- codeforces_600C. Make Palindrome(贪心)
- XTU1233 Coins
- 把两个变量交换数值的方法
- 巧用“异或”符进行组合中两个元素的位置调换
- hdu5656
- 16年腾讯春招--求最长回文子序列长度
- 使用git和github上传本地项目
- 第六周上机实践项目3:IP地址类
- java编程方法和类创建时的常见错误
- Navicat的1045mysql Access denied for user \'root\'@\'localhost\'”解决办法总结
- C语言编程程序的内存如何布局
- 图像平滑处理(滤波)
- ZMY_二级列表适配