分析

本题实质上就是对数据处理一下就可以了
就是数据结构实现题
我们要求对应索引下按照某种排序规则的线性表时 取最优时 可以用堆
每次拿出一个元素 堆内元素调整顺序
然后用三个堆 就可以表示三张表 每次我们得到顾客的一个喜欢颜色 就可以利用这个颜色去查堆
找到就输出 找不到就输出-1
本题在于把对应颜色作为下标 将元素存进来
用的时候就查表就行了减少遍历次数 将一张大表分成不同颜色的小表

code

#include<iostream>
#include<cstring>
#include<queue>
#include<cstdio>
using namespace std;
struct clo{int p,id;clo(int pr,int i):p(pr),id(i){}friend bool operator<(const clo & cc,const clo & dd){return dd.p < cc.p;}
};
const int maxn = 200010;
priority_queue<clo>q[4];
int c[maxn],ans[maxn];
bool bok[maxn];int main()
{int t,n;scanf("%d",&n);for(int i=1;i<=n;i++)scanf("%d",&c[i]);for(int i=1;i<=n;i++){scanf("%d",&t);q[t].push(clo(c[i],i));}for(int i=1;i<=n;i++){scanf("%d",&t);q[t].push(clo(c[i],i));}int m;scanf("%d",&m);for(int i=1;i<=m;i++){int t;scanf("%d",&t);if(q[t].empty())ans[i] = -1;else{while(!q[t].empty()&&bok[q[t].top().id])q[t].pop();if(q[t].empty()) ans[i]=-1;else {ans[i] = q[t].top().p;bok[q[t].top().id]=1;q[t].pop(); }}   }for(int i=1;i<=m;i++)printf("%d%c",ans[i],i==m?'\n':' ');return 0;
} 

CodeForces 799B (B) T-shirt buying相关推荐

  1. Codeforces Round #644 (Div. 3) D.Buying Shovels

    Codeforces Round #644 (Div. 3) D.Buying Shovels 题目链接 Polycarp wants to buy exactly n shovels. The sh ...

  2. CodeForces 841B (B) 博弈

    题意 定义A把取数列中区间和为奇数的元素取出来 B把数列中区间长度为偶数的区间删除 那么谁先面临无数可拿的局面为输 输出赢家 A先取 分析 分析可知本题如果区间中每一个数是偶数那么B可以一次取完 则A ...

  3. CodeForces 841C (C) Leha and Function 贪心

    题意 定义F(n,k)F(n,k)表示1-n的数列中以k为子集总个数的最小值 现有A,B数组 让我们重新排列A 使得sigma[1 len]F(ai,bi)sigma[1 ~ len]F(ai,bi) ...

  4. Codeforces 982E Billiard 扩展欧几里德

    原文链接http://www.cnblogs.com/zhouzhendong/p/9055728.html 题目传送门 - Codeforces 928E 题意 一束与坐标轴平行或者成$45^\ci ...

  5. c语言建立小根堆的算法,小根堆(Heap)的详细实现

    堆的介绍 Heap是一种数据结构具有以下的特点: 1)完全二叉树 2)heap中存储的值是偏序 Min-heap: 父节点的值小于或等于子节点的值 Max-heap: 父节点的值大于或等于子节点的值 ...

  6. Test传送门(更新中)

    一.Codeforces传送门: Avito Code Challenge 2018  题解传送门 Codeforces Round #485 (Div. 2)     题解传送门 二.hihocod ...

  7. 【树状数组】CF961E Tufurama

    挺巧妙的数据结构题(不过据说这是一种套路? E. Tufurama One day Polycarp decided to rewatch his absolute favourite episode ...

  8. 编辑器统一 快捷键

    1.编辑器统一  快捷键 向下复制一行(或块) ctrl+D 查找(文件中查找) ctrl+F (ctrl+shift+F) 查找下一个(上一个) F3 (shift+F3) 替换(文件中替换) ct ...

  9. 新概念英语(第一册)复习(原文及全文翻译)——Lesson 1 - Lesson 30

    Lesson 1 Excuse me! [课文] Excuse me! Yes? Is this your handbag? Pardon? Is this your handbag? Yes, it ...

最新文章

  1. java一天一次_做JAVA两年,月薪18k,这些自学心得你绝对值得借鉴
  2. android 锁屏
  3. python3中unicode怎么写_详解python3中ascii与Unicode使用
  4. python编程基础课后答案-中国大学慕课moocPython编程基础课后答案
  5. python实训第七天
  6. controller requestparam不传参数空指针异常_看完这篇文章,让你轻松学会Java异常处理...
  7. mybatis常见问题处理:批量操作,传递多个参数,like语句写法等等
  8. Oracle查询和解锁表
  9. 使用Selenide进行有效的UI测试
  10. 使用map的find头文件_C++ map用法
  11. 实验2 格式化输入输出和分支语句
  12. 用html css设计网站,HTMLCSS构建和设计网站
  13. 护卫神 mysql 升级_护卫神php套件 php版本升级方法
  14. 微信打飞机游戏思路复习
  15. 看,程序员是如何白嫖百度文库的!
  16. go语言字符串换行_Go语言字符串
  17. 新手怎么通过网络推广引流
  18. USACO 1.1.2 - Greedy Gift Givers(模拟)
  19. 基于深度学习模型(1D CNN)实现钓鱼网站检测
  20. Android 10.0 webview版本升级的方法

热门文章

  1. 2016年5月28日(项目任务)
  2. SAP 那点事BW HANA
  3. 04级函授计算机等级考试练习.rar
  4. 将SQL-SERVER逆向工程导入Power-Design中并给表的字段添加注释
  5. @Value(${xxxx})注解的配置及使用
  6. mybatis BindingException: Invalid bound statement (not found)
  7. adb 启动命令,pc启动两个微信,INSTALL_FAILED_CONFLICTING_PROVIDER
  8. php 页面加载进度条,HTML5/CSS3 网页加载进度条的实现,下载进度条等经典案例
  9. java搭建tcp客户端_【Java学习笔记】TCP客户端/服务器端
  10. 2021-08-08