题目链接:点击查看

题目大意:给出一个 n 和 k ,要求构造一个长度为 k 的严格递增数组 a[ i ] ,且 1 <= a[ i ] <= n ,满足任意整数 x ,对下列的等式恒成立,其中 p 是数组 a 的一种排列:

现在给出 n 和 k ,问可行的数组 a 有多少种

题目分析:首先需要知道如何构造出数组 a ,因为需要满足任意排列后的顺序取模的结果都要相同, 不难看出任意两个元素的 gcd 都为 a[ 1 ] 时满足条件,换句话说,所有的数必须都是 a[ 1 ] 的倍数,可以将取模运算这样理解,a % b 实际上就是 a 减去整数倍的 b 剩下的结果,对于任意一个 a[ i ] 来说,任意整数 x % a[ i ] ,即 x 减去整数倍的 a[ i ] ,又因为 a[ i ] 是 a[ 1 ] 的倍数,所以就相当于 x 减去整数倍的 a[ 1 ] ,每次取余都会减去一定倍数的 a[ 1 ] ,最后的答案就和 x % a[ 1 ] 等价了

代码:

#include<iostream>
#include<cstdio>
#include<string>
#include<ctime>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<stack>
#include<climits>
#include<queue>
#include<map>
#include<set>
#include<sstream>
#include<cassert>
#include<unordered_map>
using namespace std;typedef long long LL;typedef unsigned long long ull;const int inf=0x3f3f3f3f;const int N=5e5+100;const int mod=998244353;LL q_pow(LL a,LL b)
{LL ans=1;while(b){if(b&1)ans=ans*a%mod;a=a*a%mod;b>>=1;}return ans;
}LL fac[N],inv[N];LL C(int n,int m)
{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]=q_pow(fac[N-1],mod-2);for(int i=N-2;i>=0;i--)inv[i]=inv[i+1]*(i+1)%mod;
}int main()
{
#ifndef ONLINE_JUDGE
//  freopen("input.txt","r",stdin);
//  freopen("output.txt","w",stdout);
#endif
//  ios::sync_with_stdio(false); init();int n,k;scanf("%d%d",&n,&k);LL ans=0;for(int i=1;i<=n;i++){if(n/i<k)break;ans=(ans+C(n/i-1,k-1))%mod;}printf("%lld\n",ans);return 0;
}

CodeForces - 1359E Modular Stability(组合数学)相关推荐

  1. E:Modular Stability(组合数)

    Modular Stability 思路 (((xmoda1)moda2)--modak−1)modak=(((xmodp1)modp2)--modpk−1)modpk(((x \mod a_1) \ ...

  2. CodeForces - 1523E Crypto Lights(组合数学+推公式)

    题目链接:点击查看 题目大意:给出 nnn 个初始时熄灭的灯泡,每次操作会等概率打开一个灯泡,当每 kkk 个连续的灯泡中出现了大于一个亮着的灯泡时停止操作,问期望操作次数是多少 题目分析:组合数学题 ...

  3. CodeForces - 1288C Two Arrays(组合数学)

    题目链接:点击查看 题目大意:给出一个n和m,要求我们构造出两个数组a和b,满足以下要求: 两个数组的长度都为m 每个元素的取值都为1~n 对于每一个位置都有a[i]<=b[i] 数组a非降序 ...

  4. Codeforces 396A 数论,组合数学

    题意:给一个a数组,求b 数组的方案数,但是要求两者乘积相同. 分析: 不可能将它们乘起来,对于每个数质因数分解,得到每个质因子个数,遍历这些质因子,将某个质因子放到 对应的盒子里面,可以不放,方案数 ...

  5. CodeForces - 1420D Rescue Nibel!(组合数学+离散化)

    题目链接:点击查看 题目大意:给出 n 盏灯,每盏灯在 [ l , r ] 这段时间内会保持点亮的状态,问恰好有 k 盏灯同时点亮,有多少种组合方式 题目分析:因为每盏灯都有一个开始亮的时间和一个熄灭 ...

  6. CodeForces - 1366E Two Arrays(组合数学+思维)

    题目链接:点击查看 题目大意:给出一个长度为 n 的序列 a ,再给出一个长度为 m 的序列 b ,题目保证序列 b 是严格递增的,我们需要将 a 分割成恰好 m 段,使得每一段的最小值恰好等于 b[ ...

  7. CodeForces - 1267K Key Storage(组合数学)

    题目链接:点击查看 题目大意:给出一个正整数num,现在将其进行除以2.除以3.除以4....的操作,直到num变为0为止,期间记录每一次运算的余数,将其排序后得到一个集合,现在问有多少不同的数字经相 ...

  8. codeforces 571A Lengthening Sticks 组合数学 插板法

    题意 给我们四个数,a,b,c,la,b,c,la,b,c,l问: a′=a+x1b′=b+x2c′=c+x3x1+x2+x3<=la'=a+x_1\quad b'=b+x_2\quad c'= ...

  9. mysql integrityerror_mysql插入数据报错IntegrityError: (1062, Duplicate entry 'xx' for key 'xxxxx')...

    1.问题描述 MySQL插入数据的时候报错,提示如下: IntegrityError: (1062, "Duplicate entry 'xx' for key 'xxxxx'") ...

最新文章

  1. 23CSS3中的2D转换
  2. 序列模式挖掘、频繁项集与频繁序列
  3. win10恢复经典开始菜单_小编教你电脑如何升级win10
  4. linux回显冲突,Linux-Binfmt-support-不允许我回显注册
  5. 使用shell脚本监控共享池内存碎片
  6. zynqNet整体思路框架
  7. 题解:一些递推的题。
  8. Java并发之volatile
  9. java 快速io_Java编程在ICPC快速IO实现源码
  10. 信息学奥赛一本通 1855:【09NOIP提高组】潜伏者 | OpenJudge NOI 1.7 11:潜伏者 | 洛谷 P1071 [NOIP2009 提高组] 潜伏者
  11. P3373 线段树2(多重标记线段树)题解
  12. 计算n位二进制的所有情况
  13. AccessControl专业智能门禁管理系统 操作说明书
  14. CGAN和InfoGAN理解
  15. es浏览器连接电脑找不到服务器,es文件浏览器,详细教您es文件浏览器怎么连接电脑...
  16. Word2013自动生成中英文目录
  17. Android小Demo——绘制小机器人
  18. 单片机定时器中断倒计时c语言,我用定时器中断控制倒计时30秒。程序不报错,但是显示一直停在30..请问好友们,帮我看看问题出在哪里?...
  19. 170504_(读书笔记)ST7920驱动12864液晶模块学习
  20. Yanmar(洋马)发动机SPN-FMI代码在仪表显示

热门文章

  1. DockerCompose-初始Compose
  2. Pod详解-资源配额
  3. 消息发送和接收基本应用
  4. ActiveMQ跟SpringBoot整合的双向队列
  5. Spring集成web环境步骤
  6. BufferedInputStream_字节缓冲输入流
  7. Calendar类的常用成员方法
  8. 如何禁用单个FegionClient的Hystrix的支持
  9. Bootstrap全局css样式_代码
  10. Solr-4.10.2安装