当前位置: 首页 > news >正文

Educational Codeforces Round 88 E. Modular Stability

题目链接

Educational Codeforces Round 88 E. Modular Stability

思路

对于任意的非负整数 x x x,我们要满足 x % a % b = x % b % a x \% a \% b = x \% b \% a x%a%b=x%b%a。因为 a < b a < b a<b,所以只有 b b b a a a的倍数时才满足条件。

因此,我们可以枚举最小的 a a a,求出值域范围内有多少个它的倍数,然后使用组合数学计算答案即可。

代码

#include <bits/stdc++.h>
using namespace std;
#define int long long
typedef unsigned long long ull;
typedef pair<int, int> pii;
const int N = 5e5 + 5, M = 1e6 + 5;
const int mod = 998244353;
const int inf = 0x3f3f3f3f3f3f3f3f;
int n, k;
int fac[N], infac[N];
int qmi(int a, int b, int c)
{int res = 1;while (b){if (b & 1)res = res * a % c;b >>= 1;a = a * a % c;}return res;
}
void init()
{fac[0] = infac[0] = 1;for (int i = 1; i <= n; i++){fac[i] = fac[i - 1] * i % mod;infac[i] = infac[i - 1] * qmi(i, mod - 2, mod) % mod;}
}
int C(int a, int b)
{return fac[a] * infac[b] % mod * infac[a - b] % mod;
}
int MOD(int x)
{return (x % mod + mod) % mod;
}
void solve()
{cin >> n >> k;init();if (n < k){cout << 0 << endl;}else{int ans = 0;for (int i = 1; i <= n - k + 1; i++) //假设最小的a[i]为i{int num = n / i - 1;if (num < k - 1) break;ans = (ans + C(num, k - 1)) % mod;}cout << MOD(ans) << endl;}
}signed main()
{ios::sync_with_stdio(false);cin.tie(0), cout.tie(0);int test = 1;// cin >> test;for (int i = 1; i <= test; i++){solve();}return 0;
}
http://www.lryc.cn/news/471905.html

相关文章:

  • Android中SurfaceView与GLSurfaceView 的关系
  • numpy——数学运算
  • 【工具】Charles对360浏览器抓包抓包
  • 【HarmonyOS】判断应用是否已安装
  • Qt Designer客户端安装和插件集(pyqt5和pyside2)
  • 基于边缘计算的智能门禁系统架构设计分析
  • 鸿蒙实现相机拍照及相册选择照片
  • 「C/C++」C++17 之 std::filesystem::recursive_directory_iterator 目录及子目录迭代器
  • 智能EDA小白从0开始 —— DAY30 冉谱微RFIC-GPT
  • Android -- 调用系统相册之图片裁剪保存
  • 读《道德经》让人感到心胸气闷?董仲舒篡改
  • D52【python 接口自动化学习】- python基础之模块与标准库
  • 基于yolov8的布匹缺陷检测系统,支持图像、视频和摄像实时检测【pytorch框架、python源码】
  • SQL Server 中,将单行数据转换为多行数据
  • 解决数组两数之和问题与逻辑推理找出谋杀案凶手
  • uniapp的IOS证书申请(测试和正式环境)及UDID配置流程
  • windows 安装apex_Nvidia Apex安装
  • Laravel5 抓取第三方网站图片,存储到本地
  • DevOps和CI/CD以及在微服务架构中的作用
  • Rust 力扣 - 5. 最长回文子串
  • DDOS防护介绍
  • 深入了解 kotlinx-datetime:配置与使用指南
  • Qt编程技巧小知识点(6)根据 *IDN? 对程控仪器连接状态进行确认
  • 【Android】Kotlin教程(4)
  • 机票电子行程单如何批量查验?Java机票电子行程单查验接口示例-发票查验接口
  • 记录element-ui改造select显示为table,并支持多查询条件
  • Spearman、Pearson、Euclidean、Cosine、Jaccard,用来衡量不同数据之间的相似性或差异性
  • Suno 歌曲生成 API 对接说明
  • 详细且系统的Spring Boot应用开发
  • 线程支持库(C++11)