线性表课堂练习

已结束 OI 开始于: 2024-2-3 8:30 2.5 小时 主持人: 22

A

队列模拟题:

输入O:队头出队,如果队列空输出‘None’

输入I x:x入队

#include<bits/stdc++.h>
using namespace std;


queue<int> q;

int main() {
	char ch;
	while (cin>>ch) {
		if (ch=='O') {
			if (q.empty()) cout<<"None"<<endl;
			else {
				cout<<q.front()<<endl;
				q.pop();
			}
		}else {
			int x;cin>>x;
			q.push(x);
		}
	}
	return 0;
}

C

#include<bits/stdc++.h>
using namespace std;

bool p[1001];

queue<int> q;

int m,n;
int main() {
	cin>>m>>n;
	int ans=0;
	for (int i = 1; i <= n ; i ++ ) {
		int x;cin>>x;
		if (!p[x]) {//内存没有,则需要查词典 
			 ans++;
			 if (q.size()==m) p[q.front()]=false,q.pop();
			 q.push(x);
			 p[x]=true;
		}
	}
	cout<<ans<<endl;
	return 0;
}

D

#include<bits/stdc++.h>
using namespace std;
string A,B;
string C;
int main() {
	cin>>A>>B;
	int ans = 0;
	for (int i = 0 ; i < B.size();i ++ ) {
		C+=B[i];
		if (C.find(A)<C.size()) {
			C = C.substr(0,C.find(A));
			ans++;
		}
	}
	cout<<ans<<endl;
	return 0;
}

F

#include<bits/stdc++.h>
using namespace std;


int w,n;
int a[300010];

int main() {
	
	cin>>w>>n;
	for (int i = 1; i <= n ; i ++ ) cin>>a[i];
	sort(a+1,a+n+1);
	int l = 1, r = n,ans =0;//最小配最大的
	while (l<=r) {
		if (a[l]+a[r]<=w) {
			l ++ , r --;
		}else {
			r--;
		}
		ans++;
	} 
	cout<<ans<<endl;
	return 0;
}
状态
已结束
规则
OI
题目
6
开始于
2024-2-3 8:30
结束于
2024-2-3 11:00
持续时间
2.5 小时
主持人
参赛人数
22