map+优先队列=AC
2025-01-03 18:56:34
发布于:广东
3阅读
0回复
0点赞
啥也不说了,自己看注释吧。
#include<iostream>//主头文件
#include<queue>//队列头文件
#include<map>//map头文件
using namespace std;//命名空间
map<int,int> m;//定义一个名叫m的map
priority_queue<int,vector<int>,greater<int>> ans;//定义一个叫ans的从小到大排序的优先队列存储两项都得的人
int a,b;//定义获得科技创新奖和个人获得特殊贡献奖的人数
int main(){//主函数
cin>>a>>b;//输入获得科技创新奖的人数和获得特殊贡献奖的人数
for(int i=1;i<=a;i++){//重复执行获得科技创新奖的人数次
int x;//定义一个临时变量用于存储获得科技创新奖的人的编号
cin>>x;//输入这个临时变量
m[x]=1;//将m[编号]标记为获得科技创新奖
}//结束循环
for(int i=1;i<=b;i++){//重复执行获得特殊贡献奖的人数次
int x;//定义一个临时变量用于存储获得特殊贡献奖的人的编号
cin>>x;//输入这个临时变量
if(m[x]){//如果m[编号]被标记
ans.push(x);//把编号放入ans中
}//结束判断
}//结束循环
int si=ans.size();//定义一个si存储ans的长度
for(int i=1;i<=si;i++){//重复执行si次
cout<<ans.top()<<" ";//输出ans的第一个元素
ans.pop();//删除ans的第一个元素
}//结束循环
return 0;//退出主函数
}//结束函数
来都来了关注一下吧:主页
这里空空如也
有帮助,赞一个