p1449 后缀表达式 简单的栈练习 注意stack.empty返回栈空为true 一般循环结束条件为!stack.empty()
p1996 队列的模拟 灵活运用队列 n个人围一圈 从一开始喊 喊道m退出 再从一开始 直到n个人均推出 算法:从队头开始 喊一个人让他走到队尾 到m轮正好是队头 直接记录并删除队首元素
p1549 简单的队列模拟 但是wa了八个测试点 思路与一篇题解的一模一样 代码也大差不差 唯二不同的两个地方我认为完全不影响 但是这两个却导致输出答案完全不一致
标记单词是否存在 int --- 答案 bool
输入单词 全局int数组存储 --- 但用一个int型
#include<iostream>
#include<queue>
using namespace std;
queue<int> q;
int m, n;
int res;
int exist[110];
int word[1010];
int main(){
scanf("%d %d", &m, &n);
for(int i = 0; i < n; i ++){
scanf("%d", &word[i]);
if(!exist[word[i]]){//如果该单词不在内存中
res ++;//访问外存次数 +1
if(q.size() == m){//若内存已满 清理最先进来的单词
exist[q.front()] = 0;
q.pop();
}
q.push(word[i]);//将该单词调入内存
exist[word[i]] = 1;//更新单词状态
}
}
cout << res;
}