
STL
文章平均质量分 81
詹明捷
此博客停止更新,迁移至www.zhanmingjie.com
展开
-
STL中各种容器的删除操作
在应用中,我们通常不可避免地要对容器中的某些特定元素进行删除操作。这看起来并不是什么困难的问题。我们先写一个循环来迭代容器中的元素,如果迭代元素是要删除的元素,则删除之。代码如下所示:vector intContainer; ..... for(vector::iterator is = intContainer.begin(); it != intContainer.e原创 2014-11-07 17:37:57 · 2813 阅读 · 0 评论 -
再来单点更新我就呵呵了
http://codeforces.com/problemset/problem/85/D题意:有三种类型的操作,1."add x"表示往集合里添加数x。2.“del x”表示将集合中数x删除。3.“sum”求出从小到大排列的集合中下标模5为3的数的和。集合中的数都是唯一的。线段树。在线段树中维护当前这个集合中数的个数cnt,和所有的数模5为0……4内的数的和设为mod[0..原创 2015-10-12 15:11:26 · 559 阅读 · 0 评论 -
熟练使用map div2 B. Misha and Changing Handles
http://codeforces.com/problemset/problem/501/BSample test(s)input5Misha ILoveCodeforcesVasya PetrovPetrov VasyaPetrov123ILoveCodeforces MikeMirzayanovPetya Ivanovoutput原创 2015-10-23 20:19:10 · 513 阅读 · 0 评论 -
求i<j<p<q w[i]×w[p]=w[j]×w[q]总数 STL map SRM 671 div1 500: BearDarts
https://community.topcoder.com/stat?c=problem_statement&pm=13951接题意:给定一个含有N(N iw[i]×w[p]=w[j]×w[q]题解为了方便我们令a=w[i] b=w[j] c=w[p] d=w[q]我们先来枚举a和b那么问题就变成了有多少对(c,d)满足条件原创 2015-11-03 22:10:45 · 1176 阅读 · 0 评论 -
C++ STL lower_bound()返回值
函数lower_bound()在first和last中的前闭后开区间进行二分查找,返回大于或等于val的第一个元素位置。如果所有元素都小于val,则返回last的位置举例如下:一个数组number序列为:4,10,11,30,69,70,96,100.设要插入数字3,9,111.pos为要插入的位置的下标则pos = lower_bound( number, num原创 2015-08-23 17:52:03 · 1984 阅读 · 0 评论 -
C++ STL vector(向量容器)的使用(附完整程序代码)
一、简介Vectors 包含着一系列连续存储的元素,其行为和数组类似。访问Vector中的任意元素或从末尾添加元素都可以在O(1)内完成,而查找特定值的元素所处的位置或是在Vector中插入元素则是O(N)。Constructors构造函数Operators对vector进行赋值或比较assign()对Vector中的原创 2015-08-23 16:49:51 · 2433 阅读 · 0 评论 -
c++ STL unique , unique_copy函数
一.unique函数类属性算法unique的作用是从输入序列中“删除”所有相邻的重复元素。该算法删除相邻的重复元素,然后重新排列输入范围内的元素,并且返回一个迭代器(容器的长度没变,只是元素顺序改变了),表示无重复的值范围得结束。// sort words alphabetically so we can find the duplicates sort(words.be原创 2015-08-23 16:52:47 · 956 阅读 · 0 评论 -
[C/C++标准库]_[初级]_[unary_function 和 binary_function]
unary_functionbinary_function一元和二元函数.场景:1.C++算法库里经常出现unary_function和binary_function类型,比如sort,count_if,find_if,或者std::map的构造函数等,这是用来对元素进行比较用的类型.[cpp] view plaincopy转载 2014-11-15 10:51:11 · 1226 阅读 · 0 评论 -
POJ 3190 Stall Reservations-奶牛分栏(区间贪心,优先队列)
贪心算法证明与实例(POJ3190),区间贪心,优先队列原创 2014-11-11 20:03:24 · 1777 阅读 · 0 评论 -
AOJ-0525 Osenbei-翻煎饼(穷竭搜索,BFS,BITSET)
http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0525题意:药药!切克闹! 煎饼果子来一套!有一个烤饼器可以烤r行c列的煎饼,煎饼可以正面朝上(用1表示)也可以背面朝上(用0表示)。一次可将同一行或同一列的煎饼全部翻转。现在需要把尽可能多的煎饼翻成正面朝上,问最多能使多少煎饼正面朝上? 输入:多组输入,每组第一行为二整数r原创 2014-11-10 21:48:42 · 1704 阅读 · 0 评论 -
bitset的使用
bitset原创 2014-11-09 16:55:30 · 9804 阅读 · 0 评论 -
C++中String类的用法(综合)
之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要。我们可以用 = 进行赋值操作,== 进行比较,+ 做串联(是不是很简单?)。我们尽可以把它看成是C++的基本数据类型。 好了,进入正题………首先,为了在我们的程序中使用s原创 2014-11-07 22:24:47 · 809 阅读 · 0 评论 -
巧妙地利用STL map set pair 贪心+排序 Codeforces Round #331 (Div. 2)C. Wilbur and Points
http://codeforces.com/contest/596/problem/C题意给你一堆点,要求你找到一个集合,使得他的y[i]-x[i]=w[i]且如果xj>=xi && yj>=yi,那么id[i]>id[j]问你能否找到题解:我们贪心取最小就好了,然后再check一下就好了check可以使用线段树,也可以先按照Y排序,然后原创 2015-11-16 16:54:05 · 895 阅读 · 0 评论