社区讨论

这里给大家一个示例

P1540[NOIP 2010 提高组] 机器翻译参与者 3已保存回复 5

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
5 条
当前快照
1 份
快照标识符
@lwamjmdq
此快照首次捕获于
2024/05/17 19:56
2 年前
此快照最后确认于
2024/05/17 20:10
2 年前
查看原帖
可以说哈,就是那栈来模拟的,不复杂,一个库就可以了。
M[]是内存,S[]是外存,T[]是文章,a是查了几次,b是判定是否在内存里而不需要查找外存的一个数。
代码如下:
CPP
#include <stdio.h>
using namespace std;

int M[201], S[1001], T[1102], a, b;

int main() {
	int n, m, head = 0, tail = 0;
	scanf("%d %d", &m, &n);
	for (int i = 0; i < 1000; i++)
		S[i] = i + 1;
	for (int i = 0; i < n; i++)
		scanf("%d", &T[i]);
	for (int i = 0; i < n; i++) {
		b = 0;
		for (int j = head; j < tail; j++) {
			if (M[j] == T[i]) {
				b = 1;
				break;
			}
		}
		if (b == 1)
			continue;
		S[T[i]] == 0;
		if (tail - head == m)
			head++;
		M[tail] = T[i];
		tail++;
		a++;
	}

	printf("%d", a);
	return 0;
}

回复

5 条回复,欢迎继续交流。

正在加载回复...