5 条题解
-
2
一道很好练习队列的题目
本题无非就是几种情况:
- 队列满,数字不在队列中,弹出队首并且插入数字,次数+1
- 队列不满,数字不在队列中,插入数字,次数+1
- 若数字在队列中,不管
#include <bits/stdc++.h> using namespace std; queue<int> q; unordered_map<int,int> um; int m,n,cnt; bool Full() {return q.size() == m;} int main() { cin >> m >> n; while(n--) { int x; cin >> x; if(Full()) { if(!um[x]) { int t = q.front(); q.pop(); q.push(x); um[x]++; um[t]--; cnt++; } } else { if(!um[x]) { q.push(x); um[x]++; cnt++; } } } cout << cnt; return 0; }
-
0
m,n=map(int,input().split()) queue=['-1' for i in range(m)] t=0 cnt=0 for i in input().split(): if i in queue: continue else: cnt+=1 for j in range(m): if queue[j]=='-1': queue[j]=i t=1 break if t==0: del queue[0] queue.append(i) t=0 print(cnt)
这道题目的数据有点问题,第二行如果把列表初始化全部是0的话过不了最后两个点,但改成-1能AC (所以n是会等于0的……)
-
-1
def f(lt,s,e,t,mx): #查找英文单词是否在内存里 flag=False while s!=e: if t==lt[s]: flag=True break s=(s+1)%mx return flag m,n = map(int,input( ).split( )) #输入内存单元数m和英语文章长度为n(空格分隔) la = list(map(int,input( ).split( ))) #依次读入n个英文单词,用正整数表示(空格分隔) maxsize=m+1 lb=[-1]*maxsize head,tail=0,0 ans=0 for i in range(n): t=la[i] if not f(lb,head,tail,t,maxsize): if head==(tail+1)%maxsize: head=(head+1)%maxsize lb[tail]=t tail=(tail+1)%maxsize ans+=1 print(ans)
-
-2
def f(lt,s,e,t,mx): #查找英文单词是否在内存里 flag=False while s!=e: if t==lt[s]: flag=True break s=(s+1)%mx return flag m,n = map(int,input( ).split( )) #输入内存单元数m和英语文章长度为n(空格分隔) la = list(map(int,input( ).split( ))) #依次读入n个英文单词,用正整数表示(空格分隔) maxsize=m+1 lb=[-1]*maxsize head,tail=0,0 ans=0 for i in range(n): t=la[i] if not f(lb,head,tail,t,maxsize): if (tail+1)%maxsize==head: head=(head+1)%maxsize lb[tail]=t tail=(tail+1)%maxsize ans+=1 print(ans)
-
-5
def f(lt,s,e,t,mx): flag=False while s!=e: if t==lt[s]: flag=True break s=(s+1)%mx return flag m,n = map(int,input( ).split( )) la = list(map(int,input( ).split( ))) maxsize=m+1 lb=[-1]*maxsize head,tail=0,0 ans=0 for i in range(n): t=la[i] if not f(lb,head,tail,t,maxsize): if (tail+1)%maxsize==head: head=(head+1)%maxsize lb[tail]=t tail=(tail+1)%maxsize ans+=1 print(ans)
- 1
信息
- ID
- 128
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 5
- 标签
- 递交数
- 634
- 已通过
- 241
- 上传者