ACM-ICPC 2018 沈阳赛区网络预赛 G Spare Tire (素因子分解+容斥)
.
样例输入复制
4 4
样例输出复制
14
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll MOD=1e9+7,inv2=500000004,inv6=166666668;
ll n,m;
const int maxn=100000;
ll A(ll x) {
x %= MOD;
return ((x * x) + x) % MOD;
}
ll mul(ll a, ll b) {
a %= MOD, b %= MOD;
return (a *b) % MOD;
}
ll kA(ll t,ll k) {
ll res= (t+k*t)%MOD;
res = (res*k)%MOD;
res = (res*inv2)%MOD;
ll h = (mul(mul(k,k+1),2*k+1)*inv6)%MOD;
h = (h*t)%MOD;
h = (h*t)%MOD;
res = (res+h)%MOD;
return res;
}
ll a[maxn];
ll b[maxn];
void factor(ll n,ll &tot) {
ll temp,i,now;
temp=(ll)((double)sqrt(n)+1);
tot=0;
now=n;
for(i=2; i<=temp; ++i)if(now%i==0) {
a[++tot]=i;
b[tot]=0;
while(now%i==0) {
++b[tot];
now/=i;
}
}
if(now!=1) {
a[++tot]=now;
b[tot]=1;
}
}
int main() {
while(scanf("%d%d",&n,&m)!=EOF) {
ll all;
factor(m,all);
ll g=0;
for(int i=1; i<(1<<all); i++) {
int cnt=0,t=1;
for(int j=0; j<all; j++) {
if((i>>j)&1) {
t*=a[j+1];
cnt++;
}
}
if(cnt&1) {
if(n/t==0||t>n) continue;
g = (g+kA(t,n/t))%MOD;
} else {
if(n/t==0||t>n) continue;
g = (g-kA(t,n/t)+MOD)%MOD;
}
}
ll ans=g;
ll other = (mul(n, n + 1)*inv2 + mul(mul(n,n+1),2*n+1)*inv6)%MOD;
ans = (other - ans + MOD)% MOD;
cout<<ans<<endl;
}
return 0;
}
ACM-ICPC 2018 沈阳赛区网络预赛 G Spare Tire (素因子分解+容斥)的更多相关文章
- ACM-ICPC 2018 沈阳赛区网络预赛 G Spare Tire(容斥)
https://nanti.jisuanke.com/t/31448 题意 已知a序列,给你一个n和m求小于n与m互质的数作为a序列的下标的和 分析 打表发现ai=i*(i+1). 易得前n项和为 S ...
- ACM-ICPC 2018 沈阳赛区网络预赛 G. Spare Tire
这题很好啊,好在我没做出来...大概分析了一下,题目大概意思就是求 问所有满足1<=i<=n且i与m互素的ai之和 最开始我们队的做法是类似线性筛的方法去筛所有数,把数筛出来后剩下数即可, ...
- ACM-ICPC 2018 沈阳赛区网络预赛 G. Spare Tire (容斥原理)
可推出$a_n = n^2+n, $ 设\(S_n = \sum_{i=1}^{n} a_i\) 则 \(S_n = \frac{n(n+1)(2n+1)}{6} + \frac{n(n+1)}{2} ...
- ACM-ICPC 2018 沈阳赛区网络预赛 G 容斥原理
https://nanti.jisuanke.com/t/31448 解析 易得an=n*n+n O(1)得到前n项和 再删除与m不互素的数 我们用欧拉函数求出m的质因数 枚举其集合的子集 进行 ...
- 【ACM-ICPC 2018 沈阳赛区网络预赛 G】Spare Tire
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 让你求出1..n中和m互质的位置i. 让你输出∑ai 这个ai可以oeis一波. 发现是ai = i(i+1) 1..n中和m互质的 ...
- ACM-ICPC 2018 沈阳赛区网络预赛 J树分块
J. Ka Chang Given a rooted tree ( the root is node 11 ) of NN nodes. Initially, each node has zero p ...
- ACM-ICPC 2018 徐州赛区网络预赛 G. Trace (思维,贪心)
ACM-ICPC 2018 徐州赛区网络预赛 G. Trace (思维,贪心) Trace 问答问题反馈 只看题面 35.78% 1000ms 262144K There's a beach in t ...
- ACM-ICPC 2018 沈阳赛区网络预赛 K Supreme Number(规律)
https://nanti.jisuanke.com/t/31452 题意 给出一个n (2 ≤ N ≤ 10100 ),找到最接近且小于n的一个数,这个数需要满足每位上的数字构成的集合的每个非空子集 ...
- ACM-ICPC 2018 沈阳赛区网络预赛-K:Supreme Number
Supreme Number A prime number (or a prime) is a natural number greater than 11 that cannot be formed ...
随机推荐
- DRF 认证 权限 视图 频率
认证组件 使用:写一个认证类,继承BaseAuthentication 在类中写authenticate方法,把request对象传入 能从request对象中取出用户携带的token根据token判 ...
- Linux中设置系统时间和时区
之前公司里有需求要做机器与服务器做时间同步,服务器发送时间戳和时区过来,机器这边根据接收到的时间戳和时区来改时间. 其实很简单,百度上应该也有很多博客有类似的教程,但是这里强调一点,百度上的博客里写的 ...
- 超链接hover切换效果
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <meta na ...
- c# mvc权限系统
登陆界面可以用index1,现在这个是仿照这个写的 登陆后的界面.模板都是套的,数据那个easyui自己写的 后台直接三层架构,dapper连处理数据后面加了autofac demo地址:https: ...
- SQL Join的应用(转)
INNER JOIN LEFT JOIN RIGHT JOIN OUTER JOIN LEFT JOIN EXCLUDING INNER JOIN RIGHT JOIN EXCLUDING INNER ...
- O048、掌握 cinder-scheduler 调度逻辑
参考https://www.cnblogs.com/CloudMan6/p/5589707.html 上一节我们详细讨论了cinder-api 和 cinder-volume ,今天讨论另一个重要 ...
- 如何使用Jedis操作redis
public class JredisTest { private static Jedis jedis = new Jedis("localhost", 6379); publi ...
- Windows+Nginx+Tomcat整合的安装与配置学习笔记
以下全部是nginx在window7下运行的: nginx学习总结: 我的是放在F盘 1.启动:F:\nginx-1.10.2\nginx-1.10.2>start nginx.exe(找到相应 ...
- Centos7:nginx的安装,配置及使用
安装依赖 yum install gcc-c++//gcc环境 yum install -y pcre pcre-devel//PCRE:nginx的http模块使用pcre来解析正则表达式 yum ...
- ES6基础之——get 与 set
class Chef{ constructor(food){ this.food = food; thid.dish = []; } //getter get menu(){ return this. ...