Modular Stability

思路

(((xmoda1)moda2)……modak−1)modak=(((xmodp1)modp2)……modpk−1)modpk(((x \mod a_1) \mod a_2) …… \mod a_{k - 1}) \mod a_{k} = (((x \mod p_1) \mod p_2) …… \mod p_{k - 1}) \mod p_{k}(((xmoda1​)moda2​)……modak−1​)modak​=(((xmodp1​)modp2​)……modpk−1​)modpk​,其中ppp数组是aaa数组的任意的排列。

这里的最小的aia_iai​一定是决定最后答案的,所以我们后面的ai+……a_{i + ……}ai+……​一定是最小aia_iai​的倍数,我们假定最小的数是a1a_1a1​,我们只需要去枚举最小的数,然后求得剩下的数中,可以选出k−1k - 1k−1个满足要求的数有多少个即C(n/a1−1,k−1)C(n / a_1 - 1, k - 1)C(n/a1​−1,k−1),这里就正好用到我前几天写的板子了。

代码

#include <bits/stdc++.h>
#define mp make_pair
#define pb push_backusing namespace std;typedef pair<int, int> pii;
typedef long long ll;
typedef unsigned long long ull;const double eps = 1e-7;
const double pi = acos(-1.0);
const int inf = 0x3f3f3f3f;inline ll read() {ll f = 1, x = 0;char c = getchar();while(c < '0' || c > '9') {if(c == '-') f = -1;c = getchar();} while(c >= '0' && c <= '9') {x = (x << 1) + (x << 3) + (c ^ 48);c = getchar();}return f * x;
}const int mod = 998244353;
const int N = 5e5 + 10;ll fac[N], inv[N];ll qpow(ll a, int n) {ll ans = 1;while(n) {if(n & 1)   ans = (ans * a) % mod;a = (a * a) % mod;n >>= 1;}return ans;
}ll C(int n, int m) {if(n < 0 || m < 0 || m > n) return 0;if(m == 0 || m == n)    return 1;return ((fac[n] * inv[m]) % mod * inv[n - m]) % mod;
}void init() {fac[0] = 1;for(int i = 1; i < N; i++)fac[i] = (fac[i - 1] * i) % mod;inv[N - 1] = qpow(fac[N - 1], mod - 2);for(int i = N - 2; i >= 0; i--)inv[i] = (inv[i + 1] * (i + 1)) % mod;
}int main() {// freopen("in.txt", "r", stdin);// freopen("out.txt", "w", stdout);// ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);init();int n = read(), k = read();ll ans = 0;for(int i = 1; i <= n; i++) {ans += C(n / i - 1, k - 1);ans %= mod;}printf("%lld\n", ans);return 0;
}

E:Modular Stability(组合数)相关推荐

  1. CodeForces - 1359E Modular Stability(组合数学)

    题目链接:点击查看 题目大意:给出一个 n 和 k ,要求构造一个长度为 k 的严格递增数组 a[ i ] ,且 1 <= a[ i ] <= n ,满足任意整数 x ,对下列的等式恒成立 ...

  2. Codeforces Beta Round #95 (Div. 2) 部分解题报告 (dp,组合数,)

    做这样的比赛既考快速编码的能力,还有快速思维的能力.本人很弱,跌了rating..加油!!!.. 第一题上来就把题意理解错了..粗心啊..直接模拟着做就行:1:如果字符串全是大写字母就进行大小写转换: ...

  3. Blender模块化建筑环境地形场景制作视频教程 Creating modular environments

    Blender模块化建筑环境地形场景制作视频教程 Creating modular environments Blender模块化建筑环境地形场景制作视频教程 Creating modular env ...

  4. [CQOI2014]数三角形 组合数 + 容斥 + gcd

    推导过程 : 组合数+容斥原理+gcd 正确做法是暴力的一种优化,ans=所有情况 - 平行坐标轴的三点共线 - 斜线三点共线 如果快速求斜线三点共线: 首先要知道一个结论,对于点(a,b) (x,y ...

  5. 多重集表示合json数据_计数DP(划分数,多重集组合数)

    划分数:把n个无区别的物品划分成不超过m组. dp[i][j]=j的i划分的总数. dp[i[j]=dp[i][j-i]+dp[i-1][j] 即:将j个物品分成i份,有两种情况:每份划分都大于等于1 ...

  6. The Long-Term Stability of Ecosystems

    The Long-Term Stability of Ecosystems Plant communities assemble themselves flexibly, and their part ...

  7. 【ACM】杭电OJ 4704 Sum (隔板原理+组合数求和公式+费马小定理+快速幂)

    http://acm.hdu.edu.cn/showproblem.php?pid=4704 1.隔板原理 1~N有N个元素,每个元素代表一个1.分成K个数,即在(N-1)个空挡里放置(K-1)块隔板 ...

  8. [Leetcode] Combinations 组合数

    Combinations Given two integers n and k, return all possible ombinations of k numbers out of 1 ... n ...

  9. 组合数函数-快速提取所有可能的组合数

    组合数:从m个不同元素中取出n(n≤m)个元素的所有组合的个数,叫做从m个不同元素中取出n个元素的组合数. 代码: str_comb <- function(vector){n <- le ...

最新文章

  1. Product Orders(生产订单)状态相关函数BAPI
  2. Java提高篇 —— Java三大特性之封装
  3. 【机器学习】无监督学习--(聚类)DBSCAN
  4. 驱动中定时器,taskle,工作队列编程
  5. 读取XML文件报 - Content is not allowed in prolog
  6. 说说年度补税退税的问题
  7. 计算机网络实验三 rdt协议
  8. 字节入职福利太香了!7月最新Java面经已更新
  9. 自定义treeview控件,实现右键菜单编辑功能
  10. 消息队列的消费幂等性如何保证
  11. excel计算机不准确,Excel排序不准确的解决方法
  12. PADS-电阻、电容、电感CAE封装
  13. 电子专业 html,25款专业的 WordPress 电子商务网站主题_html/css_WEB-ITnose
  14. 下级对上级认可应该用什么词_下级对上级的成语-上级听取下级的词语-下级称赞上级领导的词语...
  15. Gem5和NVMain集成使用教程
  16. P2P网络ISIS的PSNP报文的两种用途
  17. Linux如何利用宝塔部署电影网站
  18. C#调用银联接口 posinf.dll方法调用
  19. CSS margin 重叠(margin collapse)
  20. 设计模式(五)【Bridge模式】

热门文章

  1. numpy拼接_巧用numpy切分图片
  2. 在计算机技术方面用英语怎么说,“计算机应用技术”用英语怎么说?
  3. 网站能拿到其他网站的cookie_如何设计网站能让网站建设的更有吸引力
  4. 这几部经典纪录片,竟然还有人没看过?
  5. 曾凭一己之力推动物理学发展,是清华大学最年轻教授,世界却欠他一个诺贝尔奖!...
  6. 图像还可以这样玩!如何用波的算法处理图像
  7. 海尔微型计算机一键还原怎么操作,教你电脑一键还原怎么操作
  8. 和flag_不怕立Flag,就怕没有Flag
  9. c mysql binlog_Mysql Binlog
  10. linux c 数据库访问框架,linux c 开发通用结构,框架