好奇怪
  • 板块灌水区
  • 楼主yuhaodi
  • 当前回复9
  • 已保存回复9
  • 发布时间2022/4/11 20:21
  • 上次更新2023/10/28 03:57:55
查看原帖
好奇怪
533773
yuhaodi楼主2022/4/11 20:21

机器翻译

请大家看一下这道题,我用如下代码不开O2得到50分,开O2,得到100分。

#include <bits/stdc++.h>
using namespace std;
template<class T>
class my_queue{
private:
	T ar[100];
	int _top;
	int _last;
public:
	my_queue():_top(0),_last(0){}
	void push(T data){ar[++_last]=data;}
	T front(){return ar[_top+1];}
	T back(){return ar[_last];}
	void pop(){_top++;}
	int size(){return _last-_top;}
	bool empty(){return _last-_top==0;}
	bool in(T data){
		for (int i=_top+1;i<_last+1;i++){
			if (ar[i] == data) return true;
		}
		return false;
	}
};
my_queue<int> a;
int n,m;
int arr[1000];
int main(){
    cin>>m>>n;
	for (int i=0;i<n;i++){
		cin>>arr[i];
	}
	int sum=0;
	for (int i=0;i<n;i++){
		if (!a.in(arr[i])) sum++;
		else continue;
		if(a.size()<m) a.push(arr[i]);
		else{
			a.pop();
			a.push(arr[i]);
		}
	}
	cout<<sum;
	return 0;
}
2022/4/11 20:21
加载中...