有 NN 级台阶,你一开始在底部,每次可以向上迈 1\sim K1∼K 级台阶,问到达第 NN 级台阶有多少种不同方式。 输入格式 两个正整数 N,KN,K。 输出格式 一个正整数 ans\pmod{100003}ans(mod100003),为到达第 NN 级台阶的不同方式数。 输入输出样例
时间: 2023-05-12 10:04:15 浏览: 183
输入样例:
5 2 2
输出样例:
8
解释:可以有以下8种方式到达第5级台阶:
1. 1 -> 2 -> 3 -> 4 -> 5
2. 1 -> 2 -> 4 -> 5
3. 1 -> 3 -> 4 -> 5
4. 1 -> 3 -> 5
5. 1 -> 4 -> 5
6. 2 -> 3 -> 4 -> 5
7. 2 -> 4 -> 5
8. 3 -> 4 -> 5
以下是代码实现:
```python
n, k1, k = map(int, input().split())
dp = [0] * (n + 1)
dp[0] = 1
for i in range(1, n + 1):
for j in range(1, k1 + 1):
if i >= j:
dp[i] += dp[i - j]
dp[i] %= 100003
print(dp[n])
```
相关问题
有 nn 个人,编号为 1\sim n1∼n,开始时所有人都站着。输入一个数字 kk,令编号为k以及 kk 的倍数的人坐下,请问最后哪些人站着?请用编程的方式解决这个问题。c++
在 C++ 中,你可以使用数组或者vector来表示这些人,并通过遍历判断每个人是否应该坐下。以下是一个简单的解决方案:
```cpp
#include <iostream>
#include <vector>
using namespace std;
vector<int> standingPeople(int n, int k) {
vector<int> status(n + 1, 1); // 初始状态,所有人站着,用1表示
for (int i = 1; i <= n; ++i) {
if (i % k == 0) { // 如果编号是k的倍数
status[i] = 0; // 让这个人坐下,用0表示
}
}
// 找出最后站着的人的编号
vector<int> result;
for (int i = 1; i <= n; ++i) {
if (status[i]) {
result.push_back(i);
}
}
return result;
}
int main() {
int n, k;
cout << "请输入总人数n: ";
cin >> n;
cout << "请输入数字k: ";
cin >> k;
vector<int> remainingStandees = standingPeople(n, k);
cout << "最终站着的人有: ";
for (int person : remainingStandees) {
cout << person << " ";
}
cout << endl;
return 0;
}
```
在这个程序中,`standingPeople` 函数接收人数 `n` 和坐下的规律 `k`,然后更新每个人的状态并返回最终站立的人的编号列表。`main` 函数则读取用户的输入并打印结果。
利用nn.BatchNorm1d()在第一,二隐藏层加入批量归一化函数
好的,针对你的要求,我可以给出以下示例代码来在第一、二隐藏层中添加批量归一化函数:
```python
import torch.nn as nn
class MyModel(nn.Module):
def __init__(self):
super(MyModel, self).__init__()
self.fc1 = nn.Linear(in_features=100, out_features=50)
self.bn1 = nn.BatchNorm1d(num_features=50)
self.fc2 = nn.Linear(in_features=50, out_features=20)
self.bn2 = nn.BatchNorm1d(num_features=20)
self.fc3 = nn.Linear(in_features=20, out_features=10)
def forward(self, x):
x = self.fc1(x)
x = self.bn1(x)
x = nn.functional.relu(x)
x = self.fc2(x)
x = self.bn2(x)
x = nn.functional.relu(x)
x = self.fc3(x)
return x
```
在这个示例中,我们定义了一个三层的全连接神经网络,其中第一隐藏层和第二隐藏层都添加了批量归一化函数。在 forward 函数中,我们首先使用第一层全连接层进行计算,然后将其输入到批量归一化函数中,再进行 ReLU 激活函数的计算,然后再将其输入到第二层全连接层进行计算,再将其输入到第二个批量归一化函数中,再进行 ReLU 激活函数的计算,最后将其输入到输出层进行计算。
阅读全文