今日份水题开始。
希望有想要提高的同学跟我们一起来刷题0.0
4.8日每日一题——[NOIP2010 提高组] 机器翻译
🧑🏻作者简介:一个从工业设计改行学嵌入式的年轻人
✨联系方式:2201891280(QQ)
⏳全文大约阅读时间: 20min
全文目录
- ☘前言☘
- 解题思路
- 📑写在最后
P1540 [NOIP2010 提高组] 机器翻译
解题思路本来以为是内存替换策略的LRU算法,好家伙,原来是FIFO算法,我理解错了,是我傻了。
直接一个循环队列就完事了呗?
#include
#include
unsigned char hash[1005];
short zhan[105];
int main(){
int m, n, ans = 0, head = 0, tail = 0;
memset(hash,0,sizeof(hash));
scanf("%d %d",&m, &n);
for(int i = 0;i < n;++i){
int tmp;
scanf("%d", &tmp);
if(hash[tmp]) continue;
hash[tmp] = 1;
if(head == tail && i ) hash[zhan[tail]] = 0,tail = (tail + 1) % m; //删除标记。
出队
zhan[head] = tmp, head = (head + 1) % m; //入队
ans++;
}
printf("%d",ans);
return 0;
}
挺好,不改了。
今天就这样,明日再见0.0
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)