洛谷 P1540 机器翻译
链接:https://www.luogu.org/problemnew/show/P1540
思路:纯模拟题,用deque直接模拟
代码:
1 #include<bits/stdc++.h> 2 #define inf 0x3f3f3f3f 3 //#define f(i,a,n) for(int i=a;i<n;i++) 4 typedef long long ll; 5 const int M = int(1e5) + 5; 6 using namespace std; 7 8 deque<int> lib; 9 deque<int>::iterator pos; 10 11 int main() 12 { 13 int m, n; 14 cin >> m >> n; 15 int ans = 0; 16 while (n--) 17 { 18 int x; cin >> x; 19 pos = find(lib.begin(), lib.end(), x); 20 if (pos == lib.end()) 21 { 22 lib.push_back(x); 23 ans++; 24 } 25 if (lib.size() > m) lib.pop_front(); 26 } 27 cout << ans << endl; 28 return 0; 29 }
备注:一开始想用的queue,结果发现queue.begin()不存在,另外要注意find函数返回的是容器末尾的迭代器end,而容器最后一个元素是end的前一个,比如容器有2个元素,end指向的是“第三个”元素。
————————————————
心里有光,哪儿都美
心里有光,哪儿都美