From 6fde967ca105e5a10737482880138d483bec4913 Mon Sep 17 00:00:00 2001 From: hanyixuanten Date: Tue, 3 Nov 2026 13:10:10 +0000 Subject: [PATCH] new file: P11681.cpp --- P11681.cpp | 28 +++++++++++++++++++++ P11681.md | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 101 insertions(+) create mode 100644 P11681.cpp create mode 100644 P11681.md diff --git a/P11681.cpp b/P11681.cpp new file mode 100644 index 0000000..9e96993 --- /dev/null +++ b/P11681.cpp @@ -0,0 +1,28 @@ +#include +using namespace std; +const int mod = 1145141923; +int n, m; +int a[1000005]; +unordered_map ma; +int _0; +int main() { + scanf("%d%d", &n, &m); + for(int i = 1; i <= n; ++i) { + scanf("%d", &a[i]); + if(a[i]) { + if(!ma[a[i]]) ma[a[i]] = 1; + else { + printf("0\n"); + return 0; + } + } else { + _0++; + } + } + long long ans = 1; + for(int i = m - n + _0; i > m - n; --i) { + ans = (ans * i) % mod; + } + printf("%lld\n", ans); + return 0; +} \ No newline at end of file diff --git a/P11681.md b/P11681.md new file mode 100644 index 0000000..9cecad2 --- /dev/null +++ b/P11681.md @@ -0,0 +1,73 @@ +# P11681 [Algo Beat Contest 001 C] Creating a Queue + +## 题目背景 + +| Problem | Score | Idea | Std | Data | Check | Solution | +| :---------------------------------: | :---: | :---------------------------------------------------: | :----------------------------------------------------------: | :---------------------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: | +| $\text{C - Creating a Queue}$ | $400$ | [joe_zxq](https://www.luogu.com.cn/user/623577) | [fanchuanyu](https://www.luogu.com.cn/user/706256) & [joe_zxq](https://www.luogu.com.cn/user/623577) | [joe_zxq](https://www.luogu.com.cn/user/623577) | [remmymilkyway](https://www.luogu.com.cn/user/551981) | [Link](https://www.luogu.com.cn/article/7r5l2cag) by [joe_zxq](https://www.luogu.com.cn/user/623577) | + +## 题目描述 + +给定一个长度为 $N$ 的非负整数序列 $A$。 + +现在你需要用 $1\sim M$ 之间的正整数替换所有序列 $A$ 中的 $0$,使得对于其中的任何一段长度大于等于 $2$ 的子数组,不能存在唯一众数。 + +> 子数组:在一个数组中,选择一些连续的元素组成的新数组。 +> +> 唯一众数:众数指的是一个数字序列中出现次数最多的元素。如果一个数字序列众数只有一个,我们称这个序列有唯一众数。 + +求有多少种不同方案,答案对 $1145141923$ 取模。两种方案称为不同,当且仅当替换后的序列至少有一位上的数不同。 + +## 输入格式 + +第一行包含两个正整数 $N$ 和 $M$,表示序列的长度和替换数的最大限度。 + +第二行包含 $N$ 个非负整数,表示序列 $A$ 的元素。 + +## 输出格式 + +一行一个非负整数,表示方案的数量,答案对 $1145141923$ 取模。 + +## 输入输出样例 #1 + +### 输入 #1 + +``` +2 3 +1 0 +``` + +### 输出 #1 + +``` +2 +``` + +## 输入输出样例 #2 + +### 输入 #2 + +``` +4 1046 +114 514 191 981 +``` + +### 输出 #2 + +``` +1 +``` + +## 说明/提示 + +#### 样例解释 #1 + +有 $2$ 个满足条件的序列,分别为 $\{1,2\}$ 和 $\{1,3\}$。 + +#### 样例解释 #2 + +序列已经完全固定,本身就是一种合法的序列,于是答案为 $1$。 + +#### 数据范围 + +对于 $100\%$ 的数据,保证 $1 \le N \le 10^6$,$1 \le M \le 10^9$,$0 \le A_i \le M$。 \ No newline at end of file