为什么是组合数学呢?qwq一开始以为是dp。。。

每个数都是不同的(除了那个相同的以外)所以你只用考虑每个数的分配总数不用。因为一旦分好顺序就就定了,这就说明我们只要考虑一半就可以了。

#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
#include <queue>
#include <vector>
#include <string>
#include <cmath>
#include <set>
#include <map>
using namespace std;
typedef long long ll;
typedef vector<int> vec;
template <class T>
inline void read(T &ret) {char c;int sgn;if (c = getchar(), c == EOF) return ;while (c != '-' && (c < '0' || c > '9')) c = getchar();sgn = (c == '-') ? -1:1;ret = (c == '-') ? 0:(c - '0');while (c = getchar(), c >= '0' && c <= '9') ret = ret * 10 + (c - '0');ret *= sgn;return ;
}
inline void out(int x) {if (x > 9) out(x / 10);putchar(x % 10 + '0');
}
const int mod = 998244353;
const int maxn = 2e5 + 10;
ll fac[maxn];
ll quickpow(ll a, ll b) {ll ans = 1, base = a;while (b) {if (b & 1) ans = ans * base % mod;base = base * base % mod;b >>= 1;}return ans;
}
ll inv(ll x) {return quickpow(x, mod - 2);
}
ll C(int n, int m) {return fac[n] * inv(fac[m] * fac[n - m] % mod) % mod;
}
int main() {int n, m;read(n), read(m);if (n == 2) {out(0);return 0;}fac[1] = 1;for (int i = 2; i <= m; i++) {fac[i] = (fac[i - 1] * i) % mod;}ll x = C(m, n - 1);x = x * (n - 2) % mod;x = x * quickpow(2, n - 3) % mod;;out(x);return 0;
}

组合计数 ---- codeforces1312 D. Count the Arrays相关推荐

  1. 学组合数学心得与题解(一)——组合计数

    今天我在某网站上稍微学习了一下组合数学,准确来讲,今天就看了看组合计数.像一些弱智的排列数.组合数大家肯定在小学奥数就已经精通了(只有我这种蒟蒻忘的精光).当然,博主比较菜,连二项式定理.帕斯卡恒等式 ...

  2. 解题报告(五)组合计数(ACM / OI)超高质量题解

    繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量题解和代码,题目难度不一定按照题号排序,我会在每道题后面加上题目难度指数(1∼51 \sim 51∼5),以模板题难度 11 ...

  3. 解题报告(二)E、(BZOJ3513) [MUTC2013] idiots(生成函数 + FFT + 组合计数)

    繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量题解和代码,题目难度不一定按照题号排序,我会在每道题后面加上题目难度指数(1∼51 \sim 51∼5),以模板题难度 11 ...

  4. pandas使用groupby函数计算dataframe数据中每个分组的N个数值的滚动计数个数(rolling count)、例如,计算某公司的多个店铺每N天(5天)的滚动销售额计数个数

    pandas使用groupby函数计算dataframe数据中每个分组的N个数值的滚动计数个数(rolling count).例如,计算某公司的多个店铺每N天(5天)的滚动销售额计数个数 目录

  5. CF1237F Balanced Domino Placements(组合计数,dp)

    CF1237F Balanced Domino Placements Solution 显然可以先考虑横着的骨牌,再考虑竖着的骨牌.但是思路卡在了选取横着的骨牌会对竖着的骨牌的相邻对数产生影响. 然而 ...

  6. 【Luogu4921】情侣?给我烧了!(组合计数)

    [Luogu4921]情侣?给我烧了!(组合计数) 题面 洛谷 题解 很有意思的一道题目. 直接容斥?怎么样都要一个平方复杂度了. 既然是恰好\(k\)对,那么我们直接来做: 首先枚举\(k\)对人出 ...

  7. 69 三角形计数(Triangle Count)

    文章目录 1 题目 2 解决方案 2.1 思路 2.2 时间复杂度 2.3 空间复杂度 3 源码 1 题目 题目:三角形计数(Triangle Count) 描述:给定一个整数数组,在该数组中,寻找三 ...

  8. 1307 牡牛和牝牛(组合计数-递推)

    1. 问题描述: 约翰要带 N 只牛去参加集会里的展示活动,这些牛可以是牡牛,也可以是牝牛.牛们要站成一排,但是牡牛是好斗的,为了避免牡牛闹出乱子,约翰决定任意两只牡牛之间至少要有 K 只牝牛.请计算 ...

  9. 基础组合计数常用的概念和方法总结

    基础组合计数常用的概念和方法总结 一.组合计数中的基本概念与性质 1.排列 定义 性质 2.组合 定义 性质 二.组合计数中的一些常用技巧 1.容斥原理 定义 公式 2.捆绑与插空法 捆绑法 插空法 ...

最新文章

  1. 定时任务 Crontab命令 详解
  2. (转载)VS2010/MFC编程入门之一(VS2010与MSDN安装过程图解)
  3. mysql date类型计算_MySQL date类型
  4. asp.net 取windows的所有进程
  5. 文字转语音文件的两种方法
  6. python笛卡尔_用Python 3来模拟笛卡尔积
  7. Win-MASM64汇编语言-LEA指令
  8. SCCM 2012系列14 操作系统播发③
  9. IOS TableView详解
  10. ArcGIS操作:裁切
  11. 7pin数码屏的使用
  12. 联想启天M5710不开机,开机后卡logo
  13. web前端学习第三周
  14. 2019年 年终总结
  15. vulnhub靶机-Pwned
  16. 麻将算法c语言,[转载]麻将胡牌的检测算法
  17. 【小Game】C++ - EGE - 躲避球小游戏
  18. python计算人口增长率_Python数据分析之全球人口数据
  19. WIN10便签怎么样开启免打扰时间 如何设置休息日消息免打扰
  20. SEON - 1 怒怼Dp(1)

热门文章

  1. ubuntu18.04安装python虚拟环境:virtualenv 【亲测有效】
  2. Python外壳:代码结构!(推导式和函数 )
  3. ACMNO.44 C语言-平均分 有N个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入N个学生的数据,要求打印出3门课的总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课成绩)
  4. C语言的数顺序输出与反序输出_只愿与一人十指紧扣_新浪博客
  5. 机器视觉边缘检测算法详解
  6. 如何快速搭建 LaTeX 轻量级写作环境(VSCode)?
  7. PyQt5+eric6之旅(四) - 信号与槽的绑定
  8. Centos 6.5下一个SNMP简单配置(snmp protocol v3,监控宝)
  9. 报错内容 IndentationError: unindent does not match any outer indentation level
  10. 每个 JavaScript 开发者都该懂的 Unicode