【STL运用】
sugarbliss
我想要的不多,只是和多数人不一样。
展开
-
序列变换(map+priority_queue)
题目:给出一个序列,里面的元素相同,我们要得到元素各不相同的序列,进行这样的操作:令为序列重复的最小数字,你需要删除序列左数第一个并把第二个换成。例如原来是,一次变换为,两次变为变换结束。 输入一个n接下来是序列的n个数字,输出最终变换的结果(最终的结果序列唯一)。 输入样例1: 3 5 4 5 输出样例1: 4 10 思路:存每一个数字的下标,并将下标从小到大排序,所以里的val放优先队列即可 #include <iostream> #include &l...原创 2020-08-13 14:18:33 · 574 阅读 · 0 评论 -
2019牛客暑假多校训练赛第六场 - D - Move (假二分)
题目链接:https://ac.nowcoder.com/acm/contest/886/D 题意:给你个物品的体积和个相同体积的盒子,让你将个物品装进个盒子,在物品体积小于盒子体积的前提下尽量先装体积较大的物品。问盒子的最小体积。 思路:本题不具有单调性(物品的体积不连续),暴力枚举答案即可。 #include <bits/stdc++.h> using na...原创 2019-08-04 18:39:06 · 127 阅读 · 0 评论 -
nyoj - 1592 - IPv6(模拟)
题目链接:http://nyoj.top/problem/1592 #include <bits/stdc++.h> using namespace std; const int MAXN = 1e5 + 5; int main() { int t; scanf("%d", &t); while(t--) { string a; ci...原创 2019-04-09 21:26:40 · 179 阅读 · 0 评论 -
Codeforces Round #451 (Div. 2)-C. Phone Numbers(STL运用)
题目链接:https://codeforces.com/contest/898/problem/C 题意:给你n个人的姓名和电话号码,一个人的号码如果出现在这个人其它号码段的后缀里则这个号码段忽略不输出。 #include<bits/stdc++.h> using namespace std; map<string,set<string>>mp; int ...原创 2019-03-27 22:03:32 · 216 阅读 · 0 评论 -
hihoCoder 1513 小Hi的烦恼 (bitset解决五维偏序)
题目链接:https://hihocoder.com/problemset/problem/1513 思路:我们先对每门课按成绩排序,对于每一门课成绩比 i 同学好的人放一个集合里,stu[i][j]表示第 j 门课程比排名为 i 的同学优秀的同学的集合,即{0,1,0,1,1}表示比这个同学优秀的有编号为2,4,5这三名同学。最后答案为每个人所有科目均比他高的人,也就是这5个集合的交集,也就是...原创 2018-12-30 19:16:44 · 495 阅读 · 0 评论 -
牛客练习赛22-C-简单瞎搞题(bitset)
题目链接:https://ac.nowcoder.com/acm/contest/132/C 思路:题目让我们从每一个区间取出一个数,求这n个数的平方和有多少种。既然是求种类的个数,那么我们用bitset中1的个数来表示平方和的种类数。我们先设置bitset的首位为1,然后我们要加上第i个数x就左移x位,我们用g做中转,f来记录更新(更新时是在上一次的基础上更新,dp思想)。代码里的 | 操作相...原创 2018-12-30 17:24:58 · 283 阅读 · 0 评论 -
Codeforces Round #528 (Div. 2, based on Technocup 2019 Elimination Round 4)-C. Connect Three(思维)
题目链接:http://codeforces.com/contest/1087/problem/C 题意:给你三个点,然你联通这三个点(任意起点),要求使经过的点的个数最少,输出一共经过几个点,和经过的点(经过点的顺序不做要求)。 思路:按x坐标从小到大排序,先从中间点开始存入从上到下经过的点,然后依次存入左右两侧经过的点即可。 #include<bits/stdc++.h> ...原创 2018-12-24 11:54:12 · 482 阅读 · 2 评论 -
Avito Cool Challenge 2018-B. Farewell Party(思维)
题目链接:http://codeforces.com/contest/1081/problem/B 题意:有n个人,接下来一行n个数a[i] 表示第i个人描述和其他人有a[i]个的帽子跟他不一样,帽子编号为1~n 如果所有的描述都是正确的输出Possible 再输出一行b[i] 表示第i个人的帽子的编号,如果存在矛盾 输出Impossible。 思路:比如有n = 5个人则有5种帽子,如果 ...原创 2018-12-17 21:22:00 · 285 阅读 · 0 评论 -
Codeforces Round #527 (Div. 3) D2. Great Vova Wall (Version 2) (栈)
题意:有n个列,然后输入n个数ai表示每个列当前的砖的个数,然后只有有1*2的砖,问最后能不能铺满n*max(ai) 思路:由于只能用1*2的砖,所以只有两块砖的高度相同时才可以消去,还有就是像这样的1221不满足题意,因为两边的相同的高度没法合在一起,像这样的2112这种才满足,最后可以有一列高度为h的墙,不过h要满足h >= max( h ) 才可以,用栈模拟过程。 #includ...原创 2018-12-20 17:18:40 · 183 阅读 · 0 评论 -
Codeforces Round #527 (Div. 3) D1. Great Vova Wall (Version 1) (栈)
题目链接:http://codeforces.com/contest/1092/problem/D1 题意:是有n个列,然后输入n个数ai表示每个列当前的砖的个数,然后有任意块2*1和1*2的砖,问最后能不能铺满n*max(ai) 思路:如果相邻的两堆差值为2的倍数则可以成对消去,用栈模拟这个过程,最后判断如果剩余堆的数量大于一,输出NO,反之输出YES。 #include<bits...原创 2018-12-20 17:07:39 · 179 阅读 · 0 评论 -
P1160 队列安排(list)
题目链接:https://www.luogu.org/problemnew/show/P1160 思路:直接用list容器按要求模拟,另外要用一个pos数组记录每一位同学在迭代器的位置。list容器是一个双向链表,可以高效地进行插入删除元素。使用list容器之前必须加上<list>头文件:#include<list> AC代码: #include <bits/...原创 2018-12-06 20:26:10 · 400 阅读 · 0 评论 -
Codeforces Beta Round #6 (Div. 2 Only)E. Exposition(线段树or multiset)
题目链接:http://codeforces.com/contest/6/problem/E 题意:给你n个数,让你找到最长的区间,使得这个区间里面的最大值减去最小值不超过K,然后让你输出符合条件的最长区间大小和最长区间的个数,以及每一个区间的起始下标和结束下标(下标从1开始)。 思路1:使用stl库的multiset维护区间的左端点,如果一个区间不符合,那么就删除左端点(因为我们是从左往右遍...原创 2018-12-13 18:32:51 · 216 阅读 · 0 评论 -
牛客练习赛28 A- 生日宴(set)
题目链接:https://www.nowcoder.com/acm/contest/200/A 题目描述 Akoasm有一群朋友,但是由于Akoasm是人赢朋友太多,当他想知道某一天谁生日时,总是很头疼。于是,他请你来帮忙。 Akoasm会给出他所有朋友的名字与出生年月日,名字为10个字符以内的英文字母,出生年月日为8位数字如19990320。每一个询问包含月份与日期和一个整数k,输出生日...原创 2018-10-18 16:59:53 · 340 阅读 · 0 评论 -
ACM/ICPC 2018亚洲区预选赛北京赛站网络赛 B. Tomb Raider(二进制枚举)
传送门 题意:给n个字符串,首尾相连,求最长公共子序列,若答案多个,输出字典序最小的 思路:暴力把每个字符串的每个子序列放入map(要记得不能重复),出现n次的就是公共的子序列,符合条件的公共子序列都放入vector,最后排序,得到最长的字典序最小的那个 就是答案 #include <bits/stdc++.h> using namespace std; map<stri...原创 2018-10-01 23:13:29 · 243 阅读 · 0 评论 -
sort对vector中pair排序+优先队列的排序
//对vector中的 pair排序 vector<pair<int,char>>V; bool cmp(const pair<int,char> a, const pair<int ,char> b) { return a.first<b.first; /// first 小的在前 } sort(V....原创 2018-10-01 20:29:26 · 3539 阅读 · 0 评论 -
牛客小白月赛7 I-新建 Microsoft Office Word 文档(set or优先队列)
----------------------------------------------------传送门---------------------------------------------------- 思路:把删除的数放入set,或者优先队列,然后维护。 set做法: #include<bits/stdc++.h> using namespace std; #de...原创 2018-09-16 15:54:25 · 264 阅读 · 0 评论 -
L1-033. 出生年
L1-033. 出生年时间限制400 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者陈越以上是新浪微博中一奇葩贴:“我出生于1988年,直到25岁才遇到4个数字都不相同的年份。”也就是说,直到2013年才达到“4个数字都不相同”的要求。本题请你根据要求,自动填充“我出生于y年,直到x岁才遇到n个数字都不相同的年份”这句话。输入格式:输入在一行中给出出生年份y和目标...原创 2018-07-13 10:20:56 · 163 阅读 · 0 评论