Codeforces 799B - T-shirt buying(STL)】的更多相关文章

题目链接 思路: 由于题目说了只有1,2,3,三种色号的衣服,然后开三个对应色号的小根堆, 我是根据pair<int,int> 创建了一个以价格小的优先的优先队列. pair中的另外一个int,用来存这个衣服的id,即用来标记这个衣服有没有已经被卖了. 详细看代码哦 #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <…
[题目链接]:http://codeforces.com/contest/799/problem/B [题意] 告诉你每个人喜欢的衣服的颜色; 然后告诉你每件衣服的正面和背面的颜色以及它的价格; 只要某件衣服的正面或背面是某个人喜欢的颜色; 则那个人就会喜欢它; 然后每个人会挑自己最喜欢的且最便宜的衣服买; 给你每个人来的先后顺序; 让你求出每个人买的衣服的价格; [题解] 定义3个set; 每次取出对应的set的头节点; 然后把那件衣服另外一面的颜色,在另外一个set中删去; (或者,先不删去…
Codeforces GYM 100876 J - Buying roads 题解 才不是因为有了图床来测试一下呢,哼( 题意 给你\(N\)个点,\(M\)条带权边的无向图,选出\(K\)条边,使得得到的子图联通并且总代价最小,输出最小总代价和一种方案. 虽然题目里描述的很冗长,但其实这个图有一些性质:它最初是一条链/一个环,然后再有一些结点直接连到这些在链上/环上的结点.. 下图就是一个(就是样例): 做法 首先我们可以简单的查看点的度数来找到链/环上的点,和连接它们的边. 然后我们可以通过…
题目链接:http://codeforces.com/problemset/problem/799/B 题目大意:有n件T恤,每件T体恤都分别有价格(每件衣服的价格不重复).前面的颜色.背部的颜色三种属性.接下来有m个人每个人都有一种喜欢的颜色,他们按先后顺序选择衣服,如果没有喜欢的颜色的衣服了就输出“-1”,否则选择其中符合条件的衣服中价值最小的.输出每个人要付出的钱. 解题思路:使用c++STL里的set(会自动按照从小到大的顺序排好,不存在重复),设置set[1],set[2],set[3…
题目链接 http://codeforces.com/problemset/problem/799/B 题意 给出N件衣服 pi 表示 第i件衣服的价格 ai 表示 第i件衣服的前面的颜色 bi 表示 第i件衣服的后面的颜色 然后有 m 位顾客 顾客会给出 他中意的颜色 只要 衣服的前面或者后面有这个颜色 那么 这件衣服 就是符合要求的 然后他要购买 目前还剩下的 最便宜的那件 先来先服务原则 并且 每件衣服 只有一件 思路 用 三个 vector 来保存 三个颜色的衣服 卖出 后 要标记一下…
链接:http://codeforces.com/contest/799/problem/B 题意: 给定n件衣服,对于第i(1<i<=n)件衣服,分别有价格pi,前颜色ai,后颜色bi三个值.然后有m个顺序访问店铺的顾客,每位顾客有一个最喜欢的颜色,只要衣服有一面是他们最喜欢的颜色,他们就会买下这些衣服中最便宜的一件,分别求出每个顾客购买时的价格,如果没有衣服是他们最喜欢的颜色就输出-1. n,m <= 2e5. 分析: 一开始做的时候看到时间限制3s,直接sort加对于m次询问的O(…
题目链接:https://codeforces.com/problemset/problem/1136/D 题意: 给出 $1 \sim n$ 的某个排列 $p$,再给出若干 $(x,y)$ 表示当序列中出现 $x,y$ 时,两者可以交换位置.问序列中最末尾的数可以前进多少步. 题解: 如果 $p[n-1]$ 可以与 $p[n]$ 交换位置,那么肯定是立刻交换,因为首先 $p[n-1]$ 只能最多只能产生 $1$ 步的贡献,同时就算把 $p[n-1]$ 往前换,等到在未来某个时刻再跟 $p[n]…
https://codeforces.com/problemset/problem/1000/A 题意: 有n个人,给出每个人的衣服的尺码,现在,将这n件衣服的尺码换成另外的n种尺码,如果有尺码一样的衣服,则不需要换,问,最少需要更换几件衣服. 思路: map记录一下每种尺码的衣服出现的次数,然后对新尺码进行一一比对,如果新尺码的数量大于原有的,则说明要更换数量为二者差值的衣服. 代码:  #include <stdio.h> #include <string.h> #includ…
https://codeforces.com/problemset/problem/993/b 这题不难,暴力就能过,主要是题意太难懂了 题意: 现在有两个人,每个人手中有一对数,第一个人手中的数是n组数中的一对,第二个人手中的数是m组数中的一对 如果这两组数中只有一个数字相等,这该数为共享数字,怎样输出看思路吧 思路: 其实就是n对和m对数中,找共享数字,直接看样例吧: 在第一示例中,第一参与者通信对(1,2)和(3,4),第二参与者通信对(1,5),(3,4).因为我们知道,他们收到的实际对…
C. Dancing Lessons   There are n people taking dancing lessons. Every person is characterized by his/her dancing skill ai. At the beginning of the lesson they line up from left to right. While there is at least one couple of a boy and a girl in the l…