BZOJ 3434 时空穿梭
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3434
题意:

思路:



const int mod=10007;
const int N=100005;
int g[22][N];
int C[N][22],mou[N];
int h[22][N][13];
int prime[N],cnt;
int tag[N];
void init()
{
int i,j;
mou[1]=1;
for(i=2;i<N;i++)
{
if(!tag[i])
{
prime[cnt++]=i;
mou[i]=-1;
}
for(j=0;j<cnt;j++)
{
if(i*prime[j]>=N) break;
tag[i*prime[j]]=1;
if(i%prime[j]==0)
{
mou[i*prime[j]]=0;
break;
}
else mou[i*prime[j]]=-mou[i];
}
}
C[0][0]=1;
for(i=1;i<N;i++)
{
C[i][0]=1;
for(j=1;j<=i&&j<=20;j++)
{
C[i][j]=C[i-1][j-1]+C[i-1][j];
if(C[i][j]>=mod) C[i][j]-=mod;
}
}
int c;
for(c=2;c<=20;c++)
{
for(i=1;i<N;i++) for(j=i;j<N;j+=i)
{
g[c][j]+=C[i-1][c-2]*mou[j/i];
if(g[c][j]>=mod) g[c][j]-=mod;
if(g[c][j]<0) g[c][j]+=mod;
}
}
for(c=2;c<=20;c++)
{
for(i=1;i<N;i++)
{
int pre=1;
int x=i;
if(x>=mod) x%=mod;
for(j=0;j<=11;j++)
{
h[c][i][j]=pre*g[c][i]%mod;
h[c][i][j]+=h[c][i-1][j];
if(h[c][i][j]>=mod) h[c][i][j]-=mod;
pre=pre*x%mod;
}
}
}
}
int n,cc,M[13];
struct node
{
int a[15];
int Max;
void clear()
{
clr(a,0);
Max=0;
}
void mul(int x1,int x0)
{
int i;
int b[15];
for(i=0;i<=Max;i++) b[i]=a[i]*x0%mod;
b[Max+1]=0;
for(i=0;i<=Max;i++)
{
b[i+1]=b[i+1]+a[i]*x1%mod;
if(b[i+1]>=mod) b[i+1]-=mod;
}
for(i=0;i<=n;i++) a[i]=b[i];
Max++;
}
}A;
int cal(int d1,int d2)
{
A.clear();
A.a[0]=1;
int i;
for(i=1;i<=n;i++)
{
i64 tmp=M[i]/d1;
int aa=-(i64)(tmp+1)*tmp/2%mod;
int bb=M[i]%mod*tmp%mod;
A.mul(aa,bb);
}
int ans=0;
for(i=n;i>=0;i--)
{
ans+=A.a[i]*(h[cc][d2][i]-h[cc][d1-1][i])%mod;
if(ans<0) ans+=mod;
if(ans>=mod) ans-=mod;
}
return ans;
}
int main()
{
init();
int T=getInt();
while(T--)
{
n=getInt();
cc=getInt();
int i;
for(i=1;i<=n;i++) M[i]=getInt();
sort(M+1,M+n+1);
int ans=0;
for(i=1;i<=M[1];)
{
int L=i;
int R=M[1];
int j;
for(j=1;j<=n;j++)
{
R=min(R,M[j]/(M[j]/i));
}
ans+=cal(L,R);
if(ans>=mod) ans-=mod;
if(ans<0) ans+=mod;
i=R+1;
}
printf("%d\n",ans);
}
}
BZOJ 3434 时空穿梭的更多相关文章
- 【BZOJ3434】[Wc2014]时空穿梭 莫比乌斯反演
[BZOJ3434][Wc2014]时空穿梭 Description Input 第一行包含一个正整数T,表示有T组数据求解每组数据包含两行,第一行包含两个正整数N,C(c>=2),分别表示空间 ...
- Vue2 实现时空穿梭框功能模块
前言 这篇文章主要是分享一个时空穿梭框功能,也就是我们平时用的选择功能.勾选了的项就会进入到另一个框中. 时空穿梭框之旅 示例演示: 这个时空穿梭框实现了: 1.可以全选.反选 2.没有选中时,不可以 ...
- 【BZOJ】3434: [Wc2014]时空穿梭
http://www.lydsy.com/JudgeOnline/problem.php?id=3434 题意:n维坐标中要找c个点使得c个点在一条线上且每一维的坐标单调递增且不能超过每一维限定的值m ...
- BZOJ 3434 [WC2014]时空穿梭 (莫比乌斯反演)
题面:BZOJ传送门 洛谷传送门 好难啊..反演的终极题目 首先,本题的突破口在于直线的性质.不论是几维的空间,两点一定能确定一条直线 选取两个点作为最左下和最右上的点! 假设现在是二维空间,选取了$ ...
- UOJ#54 BZOJ3434 [WC2014]时空穿梭
题目描述 小 X 驾驶着他的飞船准备穿梭过一个 \(n\) 维空间,这个空间里每个点的坐标可以用 \(n\) 个实数表示,即 \((x_1,x_2,\dots,x_n)\). 为了穿过这个空间,小 X ...
- BZOJ3434 [Wc2014]时空穿梭
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...
- BZOJ3434 WC2014时空穿梭(莫比乌斯反演)
考虑枚举相邻点距离差的比例.显然应使比例值gcd为1以保证不重复统计.确定比例之后,各维坐标的方案数就可以分开考虑.设比例之和为k,则若坐标上限为m,该维坐标取值方案数即为Σm-ki (i=1~⌊m/ ...
- [WC2014]时空穿梭(莫比乌斯反演)
https://www.cnblogs.com/CQzhangyu/p/7891363.html 不难推到$\sum\limits_{D=1}^{m_1}\sum\limits_{d|D}C_{d-1 ...
- UOJ 54 【WC2014】时空穿梭——莫比乌斯反演
题目:http://uoj.ac/problem/54 想写20分. Subtask 2 就是枚举4个维度的值的比例,可算对于一个比例有多少个值可以选,然后就是组合数.结果好像不对. 因为模数太小,组 ...
随机推荐
- 夺命雷公狗---DEDECMS----4快速入门之栏目页报错之快速解决
我们dedecms是分3级或者3层的,如下图所示: 点击“玄幻小说”后发现出了错,如下图所示: 我们的dedecms是分3层的,他们分别是: 网站首页 网站的栏目页面(多级)--->栏目页面是需 ...
- java web sql注入测试(1)---概念概述
在进行java web 测试时,经常会忽略的测试种类就是sql注入测试,这类缺陷造成的原因是开发技术在这方面欠缺的表现,虽然不常见,但一旦有这类缺陷,就很因此对运营的数据造成很多不必要的损失,所以,还 ...
- javascript中的this与prototype,原型理解
JavaScript 函数调用 JavaScript 函数有 4 种调用方式. 每种方式的不同方式在于 this 的初始化. this 关键字 一般而言,在Javascript中,this指向函数执行 ...
- mysql笔记04 MySQL高级特性
MySQL高级特性 1. 分区表:分区表是一种粗粒度的.简易的索引策略,适用于大数据量的过滤场景.最适合的场景是,在没有合适的索引时,对几个分区进行全表扫描,或者是只有一个分区和索引是热点,而且这个分 ...
- linux设备驱动归纳总结(三):3.设备驱动面向对象思想和lseek的实现【转】
本文转自自:http://blog.chinaunix.net/uid-25014876-id-59418.html linux设备驱动归纳总结(三):3.设备驱动面向对象思想和lseek的实现 一. ...
- 【secureCRT】如何在secureCRT上设置常用的快捷输出按钮栏
转自:http://jingyan.baidu.com/article/5d6edee2f32de199eadeec25.html 方法/步骤 打开secureCRT软件,单击菜单栏上面的[查看] ...
- python实现文章或博客的自动摘要(附java版开源项目)
python实现文章或博客的自动摘要(附java版开源项目) 写博客的时候,都习惯给文章加入一个简介.现在可以自动完成了!TF-IDF与余弦相似性的应用(三):自动摘要 - 阮一峰的网络日志http: ...
- top.location.href和localtion.href有什么不同
top.location.href=”url” 在顶层页面打开url(跳出框架) self.location.href=”url” 仅在本页面打开url地址 pare ...
- git 使用详解(5)-- get log 查看提交历史【转】
转自:http://blog.csdn.net/wh_19910525/article/details/7468549 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[-] 限制 ...
- linux下rm命令修改,增加回收站功能【笔记】
一个脚本,linux的用户根目录下.bashrc最后加入如下代码,可以修改rm命令,让人们rm时候不再会全部删除,而是会加入到回收站里,以下是根据别人的资料参考修改的,不是原创 加入后,需要sourc ...