new file: P15569.cpp

This commit is contained in:
hanyixuanten committed 2026-10-20 11:53:35 +00:00
1 parent a3a5747859
commit ab24911b50
2 files changed
+176

No files matched your search

+88
View File
@@ -0,0 +1,88 @@
# P15569 [COCI 2025/2026 #5] 结构 / Struktura
## 题目背景
本题满分 $110$。
## 题目描述
Petar 和 Ivana 在漫长的冬日下午感到无聊,于是发明了一个数字游戏。
Petar 在纸上随机写下 $n$ 个数,每个数都**独立地、等概率地**从 $1$ 到 $k$ 之间选择,形成数组 $a$。
Ivana 说她特别喜欢某些数组,因为它们有一种“隐藏的平衡”,她称这种数组为**结构(structure)**。当且仅当满足以下条件时,数组 $a$ 是结构:
- 整数 $1,2,\dots,n$ 在数组中各出现恰好一次。
- 对每个下标 $i$($1 \le i \le n$),都有 $|a_i + i - n - 1| \le 1$。
Ivana 想知道:Petar 完全随机生成数组 $a$ 时,得到结构的概率是多少。
可以证明答案总能表示为分数 $\dfrac{P}{Q}$,其中 $P$ 为整数,$Q$ 为正整数且不被 $10^9+7$ 整除。
## 输入格式
输入一行两个自然数 $n,k$($1 \le n,k \le 10^9$)。
## 输出格式
输出一个整数,表示所求概率在模 $10^9+7$ 意义下的值。
## 输入输出样例 #1
### 输入 #1
```
2 1
```
### 输出 #1
```
0
```
## 输入输出样例 #2
### 输入 #2
```
2 2
```
### 输出 #2
```
500000004
```
## 输入输出样例 #3
### 输入 #3
```
7 94
```
### 输出 #3
```
100976822
```
## 说明/提示
#### 【样例解释】
样例 #2 解释:
Petar 可能写出的数组共有 $2^2=4$ 个:$(1,1),(1,2),(2,1),(2,2)$。其中结构是 $(1,2)$ 与 $(2,1)$,概率为 $\dfrac{2}{4}$,因此输出 $2 \cdot 4^{-1} \bmod (10^9+7)=500000004$。
#### 【子任务】
| 子任务 | 分值 | 限制 |
| :----: | :--: | :--: |
| $1$ | $17$ | $n,k \le 7$ |
| $2$ | $23$ | $n \le 7$,$k \le 100$ |
| $3$ | $19$ | $n \le 20$,$k \le 100$ |
| $4$ | $25$ | $n,k \le 10^6$ |
| $5$ | $26$ | 无额外限制 |