CCF CSP 201909

您所在的位置:网站首页 cspj考点 CCF CSP 201909

CCF CSP 201909

2023-08-17 17:20| 来源: 网络整理| 查看: 265

点击前往试题目录:https://blog.csdn.net/best335/article/details/99550556在这里插入图片描述 题意:

有m∈[0,49]类商品,每类商品有n∈[0,30000]个物品. 初始时,给出第i>m>>n;//初始化商品 for(int i=0,id,score;i>id>>score; for(int j=0;j>op;//增删查操作 for(int i=0,k,kind,type,commodity,score,K[51];i>kind; switch(kind){ case 1://增加 cin>>type>>commodity>>score; G[type][commodity]=score;//在G中记录该Type类编号为Commodity商品成绩映射 F[score].insert(pair(type,commodity));//在F中插入该商品 break; case 2://删除 cin>>type>>commodity; if((itG=G[type].find(commodity))!=G[type].end()){//如果该商品存在则开始删除 itF=F.find(itG->second);//首先查找该商品在F中找到所有Score为itG->second的所有商品 itF->second.erase(pair(type,commodity));//删除该商品 if(itF->second.empty())F.erase(itF);//如果该分数的容器为空 删掉 G[type].erase(itG);//删掉Type类的Commodity到Score的映射 } break; case 3://查询 cin>>k;//查询总个数k for(int j=0;j>K[j];//输入每类不得超过的最大查询数 set S[51];//存储所有类查询到的商品编号 for(auto it=F.rbegin();it!=F.rend()&&k>0;++it){//按分数由大到小选择前k个物品 set&s=it->second;//该分数下所有商品 for(auto itS=s.begin();itS!=s.end()&&k>0;++itS){ const pair&p=*itS; if(K[p.first]>0) S[p.first].insert(p.second),--K[p.first],--k;//若该物品不超过选择数量则选择该物品 } } for(int j=0;j



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3