社区讨论
如何优化
P5266【深基17.例6】学籍管理参与者 2已保存回复 5
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 5 条
- 当前快照
- 1 份
- 快照标识符
- @mispep20
- 此快照首次捕获于
- 2025/12/05 18:10 2 个月前
- 此快照最后确认于
- 2025/12/07 10:50 2 个月前
TLE了,蒟蒻求调
ps:我知道要用哈希表,但不会,艰难 尝试,最终超时
CPP#include<bits/stdc++.h>
using namespace std;
int n;//循环次数
struct student{
char name[20];//学生名字
int score; //成绩
}a[100000];//学生与成绩
int way;//指令的种类
char name1[20]; //指令的指定
int num;//学生数
int is2;
int main(){
cin>>n;
for(int ok=1;ok<=n;ok++){
cin>>way;
if(way==4){//4
cout<<num;
}else if(way==1){//1
cin>>name1;
if(num!=0){
is2=0;
for(int i=1;i<=num;i++){
int is1=1;
for(int g=1;g<=20;g++){
if(a[i-1].name[g-1]!=name1[g-1])is1=0;
}
if(is1==1){
cin>>a[i-1].score;
is2=1;
cout<<"OK";
}
}
}
if(is2==0){
num++;
cin>>a[num-1].score;
for(int i=1;i<=20;i++)a[num-1].name[i-1]=name1[i-1];
cout<<"OK";
}
}else if(way==2){//2
cin>>name1;
if(num==0){
cout<<"Not found";
}else{
is2=0;
for(int i=1;i<=num;i++){
int is3=1;
for(int g=1;g<=20;g++){
if(a[i-1].name[g-1]!=name1[g-1])is3=0;
}
if(is3==1){
is2=1;
cout<<a[i-1].score;
}
}
if(is2==0){
cout<<"Not found";
}
}
}else if(way==3){//3
cin>>name1;
if(num==0){
cout<<"Not found";
}else{
is2=0;
for(int i=1;i<=num;i++){
int is4=1;
for(int g=1;g<=20;g++){
if(a[i-1].name[g-1]!=name1[g-1])is4=0;
}
if(is4==1){
is2=1;
a[i-1].name[0]='c';
a[i-1].name[1]='c';
a[i-1].name[0]='f';
swap(a[i-1],a[num-1]);
num--;
cout<<"Deleted successfully";
}
}
if(is2==0){
cout<<"Not found";
}
}
}
if(ok!=n)cout<<endl;
}
return 0;
}
回复
共 5 条回复,欢迎继续交流。
正在加载回复...