一些人互相是朋友(无向图连一条无向边),现在要添加一个推荐朋友的功能,如果对于x,有y,x与y不是朋友,但是y和x有共同的朋友,并且共同的朋友最多,那么y可以推荐给x.问对于每一个人,有多少人值得推荐. map映射后建图,然后用set_intersection()求交集 这道题学习了一下set_intersection()的用法: set_intersection( fir.begin() , fir.end() , sec.begin() , sec.end() , thr.begin() )…
G. Suggested Friends time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Polycarpus works as a programmer in a start-up social network. His boss gave his a task to develop a mechanism for dete…
非修改性序列操作(12个) 循环         对序列中的每个元素执行某操作         for_each() 查找         在序列中找出某个值的第一次出现的位置         find() 在序列中找出符合某谓词的第一个元素     find_if() 在序列中找出一子序列的最后一次出现的位置         find_end() 在序列中找出第一次出现指定值集中之值的位置     find_first_of() 在序列中找出相邻的一对值         adjacent_fi…
非修改性序列操作(12个) 循环         对序列中的每个元素执行某操作         for_each() 查找         在序列中找出某个值的第一次出现的位置         find() 在序列中找出符合某谓词的第一个元素     find_if() 在序列中找出一子序列的最后一次出现的位置         find_end() 在序列中找出第一次出现指定值集中之值的位置     find_first_of() 在序列中找出相邻的一对值         adjacent_fi…
本文面向的读者:学习过C++程序设计语言(也就是说学习过Template),但是还没有接触过STL的STL的初学者.这实际上是我学习STL的一篇笔记,老鸟就不用看了. 什么是泛型程序设计 我们可以简单的理解为:使用模板的程序设计就是泛型程序设计.就像我们我们可以简单的理解面向对象程序设计就是使用虚函数的程序设计一样. STL是什么 作为一个C++程序设计者,STL是一种不可忽视的技术.Sandard Template Library (STL): 标准模板库,更准确的说是 C++ 程序设计语言标…
转自http://www.cppblog.com/wanghaiguang/archive/2012/06/05/177627.html STL Set介绍集合(Set)是一种包含已排序对象的关联容器.多元集合(MultiSets)和集合(Sets)相像,只不过支持重复对象,其用法与set基本相同.Set 又称集合,实际上就是一组元素的集合,但其中所包含的元素的值是唯一的,且是按一定顺序排列的,集合中的每个元素被称作集合中的实例.因为其内部是通过链表的方式来组织,所以在插入的时候比vector…
Q:STL中set底层实现方式? 为什么不用hash? A: 第一个问题:set底层实现方式为RB树(即红黑树). 第二个问题: 首先set,不像map那样是key-value对,它的key与value是相同的.关于set有两种说法,第一个是STL中的set,用的是红黑树:第二个是hash_set,底层用得是hash table.红黑树与hash table最大的不同是,红黑树是有序结构,而hash table不是.但不是说set就不能用hash,如果只是判断set中的元素是否存在,那么hash…
本文中提到的函数库有:<string> <cctype> <algorithm> <cmath> <cstdlib> <iomanip> <numeric> 1.   标准C++库字符串类std::string的用法 begin       得到指向字符串开头的Iterator end         得到指向字符串结尾的Iterator rbegin      得到指向反向字符串开头的Iterator rend     …
这是微软帮助文档中对集合(set)的解释: “描述了一个控制变长元素序列的对象(注:set中的key和value是Key类型的,而map中的key和value是一个pair结构中的两个分 量)的模板类,每一个元素包含了一个排序键(sort key)和一个值(value).对这个序列可以进行查找.插入.删除序列中的任意一个元素,而完成这些操作的时间同这个序列中元素个数的对数成比例关 系,并且当游标指向一个已删除的元素时,删除操作无效.”而一个经过更正的和更加实际的定义应该是:一个集合(set)是一…
1.#include<iostream> iostream 的意思是输入输出流.#include<iostream>是标准的C++头文件,任何符合标准的C++开发环境都有这个头文件. 2.#include<fsteram>fstream是C++ STL中对文件操作的合集,包含了常用的所有文件操作.其中包含basic_ifstream,basic_ofstream,basic_fstream,basic_filebuf,ifstream,ofstream,fstream,…