bzoj 3462: DZY Loves Math II
3462: DZY Loves Math II
Time Limit: 20 Sec Memory Limit: 512 MB
Submit: 211 Solved: 103
[Submit][Status][Discuss]
Description

Input
第一行,两个正整数 S 和 q,q 表示询问数量。
接下来 q 行,每行一个正整数 n。
Output
输出共 q 行,分别为每个询问的答案。
Sample Input
9
29
1000000000000000000
Sample Output
9
450000036
HINT
感谢the Loser协助更正数据
对于100%的数据,2<=S<=2*10^6,1<=n<=10^18,1<=q<=10^5
/**************************************************************
Problem: 3462
User: JYYHH
Language: C++
Result: Accepted
Time:5736 ms
Memory:141916 kb
****************************************************************/ #include<bits/stdc++.h>
#define ll long long
#define maxn 2000005
using namespace std;
const int ha=1000000007;
ll n;
int d[15],num=0,S,q,now;
int inv[20],f[2][maxn*9];
int zssum=0,ans; inline int add(int x,int y){
x+=y;
if(x>=ha) return x-ha;
else return x;
} inline void dp(){
f[0][0]=1;
now=0;
int pre=now,tp=S*num-zssum; for(int i=1;i<=num;i++){
now^=1; // memset(f[now],0,sizeof(f[now])); for(int j=0;j<d[i];j++){
int tot=0;
for(int u=j;u<=tp;u+=d[i]){
tot=add(tot,f[pre][u]);
if(u-j>=S) tot=add(tot,ha-f[pre][u-S]); f[now][u]=tot;
}
} pre=now;
}
} inline int C(ll x,int y){
int an=1;
for(int i=1;i<=y;i++) an=an*((ll)(x-i+1)%ha)%ha*(ll)inv[i]%ha;
return an;
} int main(){
inv[1]=1;
for(int i=2;i<=8;i++) inv[i]=-inv[ha%i]*(ll)(ha/i)%ha+ha; scanf("%d%d",&S,&q); int U=S;
for(int i=2;i*(ll)i<=U;i++) if(!(U%i)){
d[++num]=i,U/=i,zssum+=i;
if(!(U%i)){
while(q--) puts("0");
return 0;
}
}
if(U!=1) d[++num]=U,zssum+=U; dp(); while(q--){
ans=0; scanf("%lld",&n); if(n<zssum){
puts("0");
continue;
} n-=zssum; int tp=min((ll)num,n/S);
ll tt=n/S,lef=n-tt*S;
for(int i=0;i<=tp;i++) ans=add(ans,C(tt-i+num-1,num-1)*(ll)f[now][i*S+lef]%ha); printf("%d\n",ans);
} return 0;
}
bzoj 3462: DZY Loves Math II的更多相关文章
- BZOJ 3462 DZY Loves Math II ——动态规划 组合数
好题. 首先发现$p$是互质的数. 然后我们要求$\sum_{i=1}^{k} pi*xi=n$的方案数. 然后由于$p$不相同,可以而$S$比较小,都是$S$的质因数 可以考虑围绕$S$进行动态规划 ...
- ●BZOJ 3309 DZY Loves Math
题链: http://www.lydsy.com/JudgeOnline/problem.php?id=3309 题解: 莫比乌斯反演,线筛 化一化式子: f(x)表示x的质因子分解中的最大幂指数 $ ...
- BZOJ 3561 DZY Loves Math VI
BZOJ 3561 DZY Loves Math VI 求\(\sum_{i=1}^{n}\sum_{j=1}^{m}\text{lcm}(i,j)^{\gcd(i,j)}\),钦定\(n\leq m ...
- BZOJ 3309: DZY Loves Math
3309: DZY Loves Math Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 761 Solved: 401[Submit][Status ...
- BZOJ 3512: DZY Loves Math IV [杜教筛]
3512: DZY Loves Math IV 题意:求\(\sum_{i=1}^n \sum_{j=1}^m \varphi(ij)\),\(n \le 10^5, m \le 10^9\) n较小 ...
- bzoj 3309 DZY Loves Math 莫比乌斯反演
DZY Loves Math Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 1303 Solved: 819[Submit][Status][Dis ...
- BZOJ 3569 DZY Loves Chinese II
Description 神校XJ之学霸兮,Dzy皇考曰JC. 摄提贞于孟陬兮,惟庚寅Dzy以降. 纷Dzy既有此内美兮,又重之以修能. 遂降临于OI界,欲以神力而凌♂辱众生. 今Dzy有一魞歄图,其上 ...
- bzoj 3560 DZY Loves Math V - 线性筛 - 扩展欧几里得算法
给定n个正整数a1,a2,…,an,求 的值(答案模10^9+7). Input 第一行一个正整数n. 接下来n行,每行一个正整数,分别为a1,a2,…,an. Output 仅一行答案. Sampl ...
- BZOJ 3569 DZY Loves Chinese II 树上差分+线性基
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3569 Description 神校XJ之学霸兮,Dzy皇考曰JC. 摄提贞于孟陬兮,惟庚寅 ...
随机推荐
- neutron floating ip 限速
查看浮动ip的id [root@10e131e69e14 oz]# openstack floating ip show 36.111.0.197 +---------------------+--- ...
- JavaWeb笔记(十一)Maven
什么是Maven Maven是Apache旗下一款开源自动化的项目管理工具,它使用java语言编写,因此Maven是一款跨平台的项目管理工具. 主要功能 项目构建 在实际开发中,不仅仅是写完代码项目就 ...
- JavaWeb笔记(三)HTTP
常见请求头 User-Agent:浏览器版本信息,可以解决浏览器兼容性问题 Referer:请求来源地址,可以防盗链和统计 Request 方法 获取请求方式: String getMethod() ...
- HttpRuntime.Cache再学习
摘抄: 可以看到:读缓存,其实是在调用Get方法,而写缓存则是在调用Insert方法的最简单的那个重载版本. 注意了:Add方法也可以将一个对象放入缓存,这个方法有7个参数,而Insert也有一个签名 ...
- PHP文件操作函数及文件指针理解
知识点: 一.fopen(),文件打开函数,读写参数有: 1.R : 只读,指针在文件开头 2.r+:读写,指针同上 3.W :只写,写入前会删除文件内容,然后指针回到文件开头,文件不存在则创建 4 ...
- SQL 唯一标识 写法
创建唯一标识的方法~16位唯一标识 SELECT LTRIM(STR(CONVERT(varchar(100), GETDATE(), 112)))+right(cast(power(10,6) as ...
- 发现JDK的3个bug
1.Annotation引用非空enum数组返回空数组 首次发现时的环境:JDK 1.8 首次发现所在项目:APIJSON 测试用例: public enum RequestRole { /**未登录 ...
- Tomcat学习笔记(一)
Tomcat目录结构的认识 tomcat是Apache旗下的一个开源Servlet的容器,实现了对Servlet和JSP技术支持. 通过http://tomcat.apache.org/ 下载tomc ...
- win2008服务器信任问题
右键计算机,管理,在第一个页面里面有个安全信息,里面的右边有一个配置IE ESC ,点击他后会出现一个窗口,在那里面选择禁用即可!
- Spring数据访问之JdbcTemplate
Spring数据访问之JdbcTemplate 使用JdbcTemplate的基本操作步骤 1.引jar包