大概思路想出来了,就差不会写容斥了....

题意:

思路:

这是一开始的思路:

推到最后就是求在区间[1,m/a[i+1]中有多少k2满足以下条件,gcd(k1,k2)=1,k1是一个定值

这就是容斥原理的板子了

Code:

#include <bits/stdc++.h>#define int long long
#define max(a,b) (a>b?a:b)
#define min(a,b) (a<b?a:b)using namespace std;const int mxn=1e6+10;
const int mxe=1e6+10;
const int mod=998244353;int N,M;
int a[mxn];int calc(int n,int top){vector<pair<int,int> > v;for(int i=2;i<=n/i;i++){if(n%i==0){int s=0;while(n%i==0){n/=i;s++;}v.push_back({i,s});}}if(n>1) v.push_back({n,1});int res=0,m=v.size();for(int x=1;x<(1<<m);x++){int s=0,t=1;for(int j=0;j<m;j++){if((x>>j)&1){if(t*v[j].first>top){t=-1;break;}t*=v[j].first;s++;}}if(t!=-1){if(s%2) res=(res+top/t)%mod;else res=((res-top/t)%mod+mod)%mod;}}return ((top-res)%mod+mod)%mod;
}
void solve(){cin>>N>>M;for(int i=1;i<=N;i++) cin>>a[i];for(int i=2;i<=N;i++){if(a[i-1]%a[i]!=0){cout<<0<<'\n';return;}}int ans=1;for(int i=2;i<=N;i++){if(a[i]==a[i-1]){ans=ans*(M/a[i])%mod;}else{int t=calc(a[i-1]/a[i],M/a[i])%mod;ans=ans*t%mod;}}cout<<ans%mod<<'\n';
}
signed main(){ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);int __=1;cin>>__;while(__--)solve();return 0;
}

【组合数学--容斥】CodeTON Round 3 (Div. 1 + Div. 2, Rated, Prizes!) D. Count GCD相关推荐

  1. P6076-[JSOI2015]染色问题【组合数学,容斥】

    正题 题目链接:https://www.luogu.com.cn/problem/P6076 题目大意 给出n∗mn*mn∗m的网格,ccc种颜色涂色要求 每个格子可以染色也可以不染 每一行每一列至少 ...

  2. 组合数学 —— 容斥定理

    [概述] 容斥原理是一种较常用的计数方法,其基本思想是:先不考虑重叠的情况,把包含于某内容中的所有对象的数目先计算出来,然后再把计数时重复计算的数目排斥出去,使得计算的结果既无遗漏又无重复. 容斥原理 ...

  3. BZOJ1856[Scoi2010]字符串——组合数学+容斥

    题目描述 lxhgww最近接到了一个生成字符串的任务,任务需要他把n个1和m个0组成字符串,但是任务还要求在组成的字符串中,在任意的前k个字符中,1的个数不能少于0的个数.现在lxhgww想要知道满足 ...

  4. 【BZOJ4833】最小公倍佩尔数(min-max容斥)

    [BZOJ4833]最小公倍佩尔数(min-max容斥) 题面 BZOJ 题解 首先考虑怎么求\(f(n)\),考虑递推这个东西 \((1+\sqrt 2)(e(n-1)+f(n-1)\sqrt 2) ...

  5. Codeforces Round #257 (Div. 1) D. Jzzhu and Numbers 高维前缀和 + 容斥

    传送门 文章目录 题意: 思路: 题意: 思路: 完全想不到容斥啊,看了半天也没看懂渍渍渍. 定义f[i]f[i]f[i]表示iii的超集个数,那么选择的方案就是2f[i]−12^{f[i]}-12f ...

  6. Codeforces Round #225 (Div. 1) E. Vowels 容斥 + sosdp

    传送门 文章目录 题意: 思路: 题意: 给你nnn个长度为333的串,串的每个字母都在a−za-za−z范围内,定义一个串合法当且仅当这个串中含有至少一个元音字母.现在他忘记了元音字母都有那几个,显 ...

  7. Codeforces Round #330 (Div. 2) B. Pasha and Phone 容斥定理

    B. Pasha and Phone Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/595/pr ...

  8. Codeforces Round #686 (Div. 3) E. Number of Simple Paths 基环树 + 容斥

    传送门 文章目录 题意: 思路: 题意: 给你一颗基环树,求长度>=1>=1>=1的路径个数. 思路: 先考虑一棵树,他的答案显然是n∗(n−1)2\frac{n*(n-1)}{2} ...

  9. loj#2542 [PKUWC2018]随机游走 (概率期望、组合数学、子集和变换、Min-Max容斥)

    loj#2542 [PKUWC2018]随机游走 (概率期望.组合数学.子集和变换.Min-Max容斥) 很好很有趣很神仙的题! 题目链接: https://loj.ac/problem/2542 题 ...

最新文章

  1. ue4商城资源 The Forest v1.5 森林景观场景
  2. 机器学习帮助人类找到最硬的过渡金属氮化物
  3. k8s 资源文件基础练习
  4. 本地代码推送到github仓库
  5. 从0到掌握Java泛型有这一篇博客就够了
  6. 【STM32】FreeRTOS系统配置
  7. SpringBoot精通系列-如何封装Spring Boot异常捕获
  8. 必备技能:IDEA一定要懂的30条快捷键
  9. z变换与拉普拉斯变换的关系
  10. html 字体最小多少,浏览器最小显示12px字体的解决方法
  11. Android手机通讯录制作
  12. 重新学习《C++Primer5》第16章-模板与泛型编程
  13. MySQL-5.5-winx64 安装包下载
  14. C#中check和uncheck
  15. Android基础篇 读取 Assets 文件夹中的文件
  16. Easyui datagrid数据清空
  17. uni-app小程序结合腾讯地图获取定位以及地图选址
  18. 永恒之蓝实验 MS17-010
  19. 北京办理居住证的全流程
  20. 论文笔记:Show, Control and Tell:A Framework for Generating Controllable and Grounded Captions

热门文章

  1. odbc数据 mysql数据库_odbc连接数据库
  2. 2020年中钢协会员企业钢渣利用率达到了99.09%,我国钢渣处理规模不断增长[图]
  3. Unity 引导功能
  4. 学习笔记 css background 图片
  5. html文本框输入数字格式,html文本框只能输入数字
  6. SurfaceView的基础使用
  7. 白云黑土春晚争当火炬手 精彩台词提前曝光
  8. java基于servlet开发的旅游日志博客系统用来记录旅行的
  9. 上海交通大学2023计算机考研上岸经验贴
  10. 1.设计一个抽奖程序,程序通过随机方式产生中奖序号。程序可以设置序号包含数字位数 和最大序号,一次抽取几个中奖序号(最少 1 个序号,最多不超过 2 个序号)和总共中奖 人数(最少 5 人)。抽奖过程