STL
ocean_62
一只奋战在OI路上的小小蒟蒻,怀揣着一个大大的梦想 0.0
展开
-
UVa 101 The Blocks Problem
首先每一个木块自成一堆,并分配一个编号。因为不确定每一个木块堆的高度,所以可以用vector来表示每一堆的木块编号。P.S. vector的常用操作:1. vec.push_back() 向尾部插入元素2. vec.size() 取数组元素个数3. vec.clear() 清空数组4.插入元素: vec.insert(vec.b转载 2016-10-15 22:37:58 · 236 阅读 · 0 评论 -
UVa 10815 Andy's First Dictionary
因为需要找出不同的单词,所以可以利用set的性质,即元素不重复并且是有序的(这样就不用再排序)。1.几个函数:isalpha() 判断字符是否是字母,如是,返回值为truetolower() 将字母转化为小写字母,如不是字母,则不作处理2.字符串流读入时会自动略过空格,所以如果只想提取单词可以将所有的标点符号都变成空格。3.set的常用函数: set.inser转载 2016-10-15 22:59:09 · 204 阅读 · 0 评论 -
UVa 156 Ananagrams
因为要字母重排,所以要把每一个单词标准化,即全部转化为小写字母后再进行排序。用map来统计标准化后的单词出现的次数,最后将值为1的单词加入到ans集合中。(标准化必须是动态的,不能改变原来的单词!)#include#include#include#include#include#include#includeusing namespace std;string s;ma转载 2016-10-15 23:28:26 · 225 阅读 · 0 评论 -
UVa 540 Team Queue
定义两个队列: q,q2[maxn]q表示团队整体的队列,q2[x]表示团队x中队员的相对次序。#include#include#include#include#define maxt 1100using namespace std;map team; //team[x]表示编号为x的人所在的团队编号 int kase,t,n,x;char od[10];int转载 2016-10-16 20:26:12 · 216 阅读 · 0 评论 -
UVa 136 Ugly Numbers
实现方法:从小到大生成各个丑数。(对于任意丑数x,2x、3x和5x都是丑数)每次要取队列中最小的数来生成后面的数(为了统计已生成的数的个数),但队列中的元素并不是按照大小顺序排列的,所以要用到优先队列:priority_queue, greater >。每一次用过x生成三个数之后就将x出队。注意:需要使用long long数据类型。#include#include#incl转载 2016-10-17 13:05:26 · 246 阅读 · 0 评论 -
UVa 12096 The SetStack Computer
本题的集合并不是简单的整数集合或者字符串集合,而是集合的集合(一个比较抽象的问题)。为了方便起见,此处为每个不同的集合分配一个唯一的ID,则可以将集合的集合转化为int类型的集合。整个栈是一个stack。#include#include#include#include#include#include#include#define ALL(x) x.begin(),x.end()转载 2016-10-16 10:23:13 · 306 阅读 · 0 评论