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

写程序or打游戏(组合计数)

L-打游戏 or 写程序_河南萌新联赛2025第(七)场:郑州轻工业大学(重现赛)

星与条定理

    将 m 个相同物品放入 r 个不同盒子" 的方法数是 C (m+r-1, r-1)

分析

1. 设定变量

假设在序列中,打游戏(1)出现了 i 次,那么写程序(0)就出现了 n-i 次(因为总事件数是 n)。

2. 必须的间隔

因为两个打游戏之间至少有 k 个写程序,所以 i 次打游戏之间有 (i-1) 个间隔,每个间隔至少需要 k 个 0。
这些是 "硬性要求",必须满足,所以总共用掉了 (i-1)×k 个 0。

3. 剩余的自由度

总共有 n-i 个 0,减去必须用掉的 (i-1)×k 个 0,剩下的 0 数量是:
剩余0 = (n-i) - (i-1)×k
这些剩下的 0 可以自由分配,没有数量限制(可以是 0 个或多个)

4. 分配剩余的 0(关键步骤)

这些剩余的 0 可以放在哪里?有 (i+1) 个位置可以放:

代码

using namespace std;
#define int long long
#define endl '\n'
#define PII pair<int, int>
#define LL long long
const int N = 2e6 + 10, M = 1e7, inf = 1e18;
const int mod = 1e9 + 7;LL fac[N], infac[N]; // C a b == a! / (*b! * (a - b)!) == a! * (b!)[逆元] * (a - b)![逆元]
// fac[a] = a! % mod;  infac[b] = (b!)[逆元] LL qmi(LL a, LL k) {LL ans = 1;while (k) {if (k & 1) ans = ans * a % mod;k >>= 1;a = a * a % mod;}return ans;
}void intal(int n) {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;}
}int C(int a, int b) {if (a < b || a < 0 || b < 0) return 0;return fac[a] * infac[b] % mod * infac[a - b] % mod;
}void solve() {int n, k;cin >> n >> k;intal(n + k);int ans = 0;for (int i = 0; i <= n; i ++ ) {ans = (ans + C(i - (n - i - 1) * k + n - i, n - i)) % mod;}cout << ans << endl;}signed main() {ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int T = 1;// cin >> T;while (T -- ) {solve();}return 0;
}

http://www.xdnf.cn/news/1489627.html

相关文章:

  • 美股市场股票数据API对接文档
  • compute_class_weight函数介绍
  • 独角数卡对接蓝鲸支付平台实现个人
  • 26考研——内存管理_内存管理策略(3)
  • 解锁服务器网络配置新姿势:Wisdom SSH 助力之旅
  • (RDFS)随机深度特征选择方法解释:简而言之,RDFS主要针对的是恶意的服务器,它建立在客户端是诚实的前提下。
  • 【PS2025全网最新版】稳定版PS2025保姆级下载安装详细图文教程(附安装包)(Adobe Photoshop)
  • 深入理解OpenHarmony中的BUILD.gn:从语法到模块化构建
  • Java Modbus通信实战(四):Modbus通信测试与故障排查
  • 深入理解 X25519 与 Ed25519:密钥交换与签名验签全流程解析
  • kafka特性和原理
  • 系统架构性能优化与容灾设计深度解析
  • Spring的容器扩展机制三大基石
  • Spark mapreduce 的一个用法
  • SQLite的基本操作
  • 使用 nginx-module-vts 进行 Nginx 流量监控
  • 【多模态学习】QA3:FFN的作用?Embedding生成方法的BERT和Word2Vec?非线性引入的作用?
  • 单片机的bin、exe、elf、hex文件差异
  • Shell 秘典(卷十)—— 服务器资源自动化监控脚本的设计与实现
  • Kubernetes实战系列(5)
  • 多功能台灯设计与实现(论文+源码)
  • 155. 最小栈
  • 基于Echarts+HTML5可视化数据大屏展示-学生综合成绩评价系统大屏
  • SimLingo:纯视觉框架下的自动驾驶视觉 - 语言 - 动作融合模型
  • Lua 核心知识点详解
  • OD和XDBG详解
  • Java捕获子线程异常以及主线程感知子线程异常
  • 第4篇 conda install pytorch==2.0.0报错
  • Keil快捷键代码补全
  • Photoshop图层间的关系