题目描述 给定一串数字,然后给定若干删除操作,将操作后的结果输出。 输入要求 第一行:输入一个整数n,表示这串数字有n个(n>=1)。 第二行:输入这n个数字。 第三行:输入一个整数m,表示有m个删除操作。 后面m行:每行输入两个整数a和b,表示删除第a到第b个数字,包括b。(假设链表第一个数字编号为1) (假设数据都在合理范围内) 输出要求 输出操作后的结果。每个数字用空格空开 输入样例 4 2 1 3 5 2 1 1 1 2 输出样例 5
时间: 2024-02-20 19:58:17 浏览: 25
以下是给定输入样例的 Python3 代码实现:
```python
n = int(input())
nums = list(map(int, input().split()))
m = int(input())
for i in range(m):
a, b = map(int, input().split())
nums = nums[:a-1] + nums[b:]
print(' '.join(map(str, nums)))
```
首先读入数字个数 `n` 和数字序列 `nums`,然后读入删除操作个数 `m`,并依次执行每个删除操作,最后输出剩余的数字序列。在删除操作中,我们可以通过切片操作将需要删除的数字从原序列中去掉。最后,使用 `' '.join(map(str, nums))` 将数字序列转为字符串,并用空格分隔每个数字。
相关问题
有若干个大于10的整数,若一个数个位上的数字大于等于其他位上的数字之和;则认为这个数满足小明的要求。统计给定的n个大于10的整数中一共有多少个整数满足小明的要求。 输入 输入为两行 第1行为整数的个数n(1<=n<=100) 第2行到n+1行每行一个整数,共n个。(10<每个整数<=108) 输出 满足条件的整数个数
好的,这是一道简单的编程题目,我可以帮你解决。以下是解题思路:
1. 定义一个计数器变量count,用于记录满足要求的整数的个数。
2. 遍历每个大于10的整数,对于每个整数,将其转换为字符串类型,然后遍历字符串中的每一位数字。
3. 对于每一位数字,计算该数字与其他位数字之和,如果该数字大于等于其他位数字之和,则将计数器count加1,否则不做操作。
4. 最后输出计数器count的值,即为满足要求的整数个数。
下面是Python代码实现:
题目描述 如题,给定 � N 个字符串(第 � i 个字符串长度为 � � M i ,字符串内包含数字、大小写字母,大小写敏感),请求出 � N 个字符串中共有多少个不同的字符串。 输入格式 第一行包含一个整数 � N ,为字符串的个数 接下来 � N 行每行包含一个字符串,为所提供的字符串 输出格式 输出包含一行,包含一个整数,为不同的字符串个数 样例输入 5 abc aaaa abc abcc 12345 样例输出 4 数据范围 � ≤ 10000 N≤10000, � � ≈ 1000 M i ≈1000, � � � � ≤ 1500 M max ≤1500 时空磁盘限制(运行时) 时间限制: 1000 ms 内存空间限制: 488 MiB 磁盘空间限制: 无限制。请通过自建哈希表来实现要求,并用C++语言写出目标代码
题目已经给了时空磁盘限制,我们可以采用分块的方式来实现哈希表。具体做法是,将元素分成若干块,对每一块采用数组模拟哈希表,最后统计不同的字符串数目。
以下是代码实现:
```cpp
#include <iostream>
#include <cstring>
using namespace std;
const int N = 10010, K = 200, M = 1010, P = 131;
int n;
int h[K][N], e[K][N], ne[K][N], idx;
char str[N][M];
void insert(char str[])
{
int len = strlen(str);
int hash = 0;
for (int i = 0; i < len; i++)
hash = hash * P + str[i];
int k = hash % K;
for (int i = h[k][0]; i != -1; i = ne[k][i])
if (strcmp(str, ::str[e[k][i]]) == 0)
return;
e[k][idx] = idx;
strcpy(::str[idx], str);
ne[k][idx] = h[k][0];
h[k][0] = idx++;
}
int main()
{
memset(h, -1, sizeof h);
cin >> n;
for (int i = 0; i < n; i++) {
cin >> str[i];
insert(str[i]);
}
int cnt = 0;
for (int i = 0; i < K; i++)
for (int j = h[i][0]; j != -1; j = ne[i][j])
cnt++;
cout << cnt << endl;
return 0;
}
```
其中,h数组表示哈希表(桶),e和ne数组表示链式前向星,idx表示元素个数,K表示块数(这里取200),M表示字符串最大长度(这里取1010)。字符串的哈希值计算采用了P进制的方法,这里P取131。时间复杂度为O(NM/K),空间复杂度为O(NM),磁盘空间复杂度为O(KNM)。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![text/x-c](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![application/x-zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![text/x-c](https://img-home.csdnimg.cn/images/20210720083646.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)