ACM-ICPC 2018 沈阳赛区网络预赛 G 容斥原理
https://nanti.jisuanke.com/t/31448
解析 易得an=n*n+n O(1)得到前n项和 再删除与m不互素的数 我们用欧拉函数求出m的质因数 枚举其集合的子集 进行容斥
n*n+n+2n*2n+2n+3n*3n+3n=(1+4+9)*n*n+(1+2+3)*n 所以也可以O(1)得到。
AC代码
- #include <bits/stdc++.h>
- #define pb push_back
- #define mp make_pair
- #define fi first
- #define se second
- #define all(a) (a).begin(), (a).end()
- #define fillchar(a, x) memset(a, x, sizeof(a))
- #define huan printf("\n");
- #define debug(a,b) cout<<a<<" "<<b<<" ";
- using namespace std;
- const int maxn=1e5+,inf=0x3f3f3f3f;
- typedef long long ll;
- typedef pair<int,int> pii;
- const ll mod=1e9+;
- int yin[maxn],cnt;
- void euler(ll n) //返回euler(n)
- {
- ll res=n,a=n;
- cnt=;
- for(ll i=; i*i<=a; i++)
- {
- if(a%i==)
- {
- yin[cnt++]=i;
- res=res/i*(i-);//先进行除法是为了防止中间数据的溢出 爆int
- while(a%i==)
- a/=i;
- }
- }
- if(a>)
- res=res/a*(a-),yin[cnt++]=a;
- }
- ll powmod(ll n,ll m)
- {
- ll ans=;
- while(m>)
- {
- if(m&)
- ans=ans*n%mod;
- m = m>>;
- n = n*n%mod;
- }
- return ans;
- }
- ll inv2=powmod(,mod-);
- ll inv6=powmod(,mod-);
- ll getsum1(ll n)
- {
- return n*(n+)%mod*(*n%mod+)%mod*inv6%mod;
- }
- ll getsum2(ll n)
- {
- return n*(n+)%mod*inv2%mod;
- }
- int main()
- {
- ll n,m;
- while(scanf("%lld%lld",&n,&m)!=EOF)
- {
- euler(m);
- ll ans=(getsum1(n)+getsum2(n))%mod;
- for(int i=; i<(<<cnt); i++)
- {
- ll temp=,jishu=;
- for(int j=; j<cnt; j++)
- {
- if(i&(<<j))
- temp*=yin[j],jishu++;
- }
- if(temp==)continue;
- ll bei=n/temp;
- ans=(ans+powmod(-,jishu)*temp*temp%mod*getsum1(bei)%mod+mod)%mod;
- ans=(ans+powmod(-,jishu)*temp*getsum2(bei)%mod+mod)%mod;
- }
- printf("%lld\n",ans);
- }
- }
ACM-ICPC 2018 沈阳赛区网络预赛 G 容斥原理的更多相关文章
- ACM-ICPC 2018 沈阳赛区网络预赛 G Spare Tire (素因子分解+容斥)
. 样例输入复制 4 4 样例输出复制 14 #include<bits/stdc++.h> using namespace std; typedef long long ll; cons ...
- 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】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 ...
随机推荐
- (转)Spring简介
http://blog.csdn.net/yerenyuan_pku/article/details/52830571 阿昀以一个初学者的身份学习Spring框架,并按照一个小白的思路详细总结学习过程 ...
- example - 在这里插入一句话的简介
总览 (SYNOPSIS) example [options] arguments 描述 (DESCRIPTION) 在这里插入描述 man9 应当是 “内核文档” 但是由于内核文档一般不以 man ...
- less算宽度 加~ width: calc(~"50% - 35px");
less算宽度 加~ width: calc(~"50% - 35px");
- 关于MessageBox返回值
风格设置MB_OK. 此时无论点击确定还是点击X,都返回IDOK.风格设置MB_OKCANCEL,点击确认返回IDOK,点击取消和X都返回IDCANCEL.风格设置MB_YESNO,点击是返回IDYE ...
- git 设置ss代理
git config --global https.proxy http://127.0.0.1:1080 git config --global https.proxy https:// ...
- MySQL索引之博客荐读
推荐博客: 寒江独钓. 浅谈算法和数据结构: 十 平衡查找树之B树 张洋. MySQL索引背后的数据结构及算法原理 漫画算法:什么是 B+ 树? B树和B+树的插入.删除图文详解 Jeremy Col ...
- vim的操作命令
vim常用命令 在命令状态下对当前行用== (连按=两次), 或对多行用n==(n是自然数)表示自动缩进从当前行起的下面n行.你可以试试把代码缩进任意打乱再用n==排版,相当于一般IDE里的code ...
- 零、常用的Mysql数据库操作语句大全
零.用户管理: 1.新建用户: >CREATE USER name IDENTIFIED BY 'ssapdrow'; 2.更改密码: >SET PASSWORD FOR name=PAS ...
- xtu summer individual 2 E - Double Profiles
Double Profiles Time Limit: 3000ms Memory Limit: 262144KB This problem will be judged on CodeForces. ...
- Leetcode 274.H指数
H指数 给定一位研究者论文被引用次数的数组(被引用次数是非负整数).编写一个方法,计算出研究者的 h 指数. h 指数的定义: "一位有 h 指数的学者,代表他(她)的 N 篇论文中至多有 ...