线性表课堂练习
已结束
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