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个维度的值的比例,可算对于一个比例有多少个值可以选,然后就是组合数.结果好像不对. 因为模数太小,组 ...
随机推荐
- 包括post,get请求(http,https)的HttpClientUtils
package cn.knet.data.untils; import java.io.IOException; import java.net.SocketTimeoutException; imp ...
- 给Debian浏览器安装flash播放插件
sudo apt-get install flashplugin-nonfree
- 【linux】xrander/cvt自定义分辨率
今天在虚拟机上装了一个LUbuntux64(12.10)玩,安装的时候,由于主板默认是没有开虚拟化支持,报错,改后相当的顺利.但是进入系统后,屏幕显示分辨率为800X600的,全屏的话,在大显示器上显 ...
- sql server中index的REBUILD和REORGANIZE
参考文献: http://technet.microsoft.com/en-us/library/ms188388.aspx 正文 本文主要讲解如何使用alter index来rebuild和reor ...
- 随讲MyIsam和InnoDB的区别
mysiam表不支持事务处理,同时mysiam表不支持外键.外键不用说了吧?不知道的话,找度娘. 同时,在执行数据库写入的操作(insert,update,delete)的时候,mysiam表会锁表, ...
- React笔记_(1)_react概述
React概述 React是一种很好的前端技术. 它将应用打散成独立的小模块,然后进行组装,完成开发. react远比angularjs难学的多. react依赖的如webpack等各种工具得先学 ...
- html5 canvas 笔记三(绘制文本和图片)
绘制文本 fillText(text, x, y [, maxWidth]) 在指定的(x,y)位置填充指定的文本,绘制的最大宽度是可选的. strokeText(text, x, y [, ma ...
- Temporary InMemory Tables [AX 2012]
Temporary InMemory Tables [AX 2012] This topic has not yet been rated - Rate this topic Updated: Oct ...
- shell十三问:关于${0##*/} 和${0%/*}
转自shell十三问: http://bbs.chinaunix.net/thread-218853-1-1.html …… 假設我們定義了一個變量為:file=/dir1/dir2/dir3/my ...
- hdwiki中模板和标签的使用
MVC中的视图view 主要负责页面显示部分,所有的页面显示全部在此实现,视图对整个页面负责,它通过control的调用来显示页面和数据. ......视图(view)类template.class. ...