
知识点
xuejye
123
展开
-
c++ vector(1)
原文链接:http://www.cnblogs.com/wang7/archive/2012/04/27/2474138.html点击打开链接在c++中,vector是一个十分有用的容器,下面对这个容器做一下总结。1 基本操作(1)头文件#include.(2)创建vector对象,vector vec;(3)尾部插入数字:vec.push_back(a转载 2017-06-10 02:11:43 · 381 阅读 · 0 评论 -
string and stringstream(1)
【本文来自】http://www.builder.com.cn/2003/0304/83250.shtmlhttp://www.cppblog.com/alantop/archive/2007/07/10/27823.html使用stringstream对象简化类型转换C++标准库中的提供了比ANSI C的更高级的一些功能,即单纯性、类型安全和可扩展性。在本文中,我将展示怎样使用这些库转载 2017-07-17 23:14:21 · 250 阅读 · 0 评论 -
vector(3)
学习C++ -> 向量(vector)一、向量的介绍 向量 vector 是一种对象实体, 能够容纳许多其他类型相同的元素, 因此又被称为容器。 与string相同, vector 同属于STL(Standard Template Library, 标准模板库)中的一种自定义的数据类型, 可以广义上认为是数组的增强版。 在使用它时, 需要包含转载 2017-07-10 11:22:16 · 414 阅读 · 0 评论 -
set(1)
STL中的set容器的一点总结1.关于setC++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vector, string, list等方便的容器,更重要的是STL封装了许多复杂的数据结构算法和大量常用数据结构操作。vector封装数组,list封装了链表,map和set封装了二叉树等,在封装这些数据结构的时候,STL按照程序员的使用习惯,以成员函数方式提供的常用转载 2017-07-10 12:55:34 · 394 阅读 · 0 评论 -
set(3)
C++ STL set和multiset的使用std::set s;那个s这个对象里面存贮的元素是从小到大排序的,(因为用std::less作为比较工具。)1,set的含义是集合,它是一个有序的容器,里面的元素都是排序好的,支持插入,删除,查找等操作,就 像一个集合一样。所有的操作的都是严格在logn时间之内完成,效率非常高。 set和multiset的区别是:set插入的元转载 2017-07-10 13:12:22 · 323 阅读 · 0 评论 -
位运算(1)
一提起位运算,人们往往想到它的高效性,无论是嵌入式编程还是优化系统的核心代码,适当的运用位运算总是一种迷人的手段,或者当您求职的时候,在代码中写入适当的位运算也会让您的程序增加一丝亮点,最初当我读《编程之美》求“1的数目”时,我才开始觉得位运算是如此之美,后来读到 《Hacker's Delight》,感慨到Henry S.Warren把位运算运用的如此神出鬼没,很多程序都十分精妙,我觉得在一转载 2017-07-13 19:01:16 · 410 阅读 · 0 评论 -
set(2)and multiset
一、set和multiset基础set和multiset会根据特定的排序准则,自动将元素进行排序。不同的是后者允许元素重复而前者不允许。需要包含头文件:#include set和multiset都是定义在std空间里的类模板:[cpp] view plain copy print?templatec转载 2017-07-10 13:02:36 · 282 阅读 · 0 评论 -
dp(1)
转载请注明出处,谢谢。 http://blog.youkuaiyun.com/cc_again?viewmode=list ---------- Accagain 2014年5月15日动态规划一直是ACM竞赛中的重点,同时又是难点,因为该算法时间效率高,代码量少,多元性强,主要考察思维能力、建模抽象能力、灵活度。本人动态规划博客地址:http://blog.csdn.ne转载 2017-08-19 01:05:42 · 347 阅读 · 0 评论 -
主席树(1)
树状结构之主席树主席树搞了一个多星期TAT,,,,,,也只是大致领悟而已!!!主席树又称函数式线段树,顾名思义,也就是通过函数来实现的线段树,至于为什么叫主席树,那是因为是fotile主席创建出来的这个数据结构(其实貌似是当初主席不会划分树而自己想出来的另一个处理方式。。。。是不是很吊呢? ORZ...)不扯了,切入正题。主席树就是利用函数式编程的思想来使线段树支持询问转载 2017-08-25 19:53:54 · 381 阅读 · 0 评论 -
rand() 和 srand()函数 (1)
srand 初始化随机种子,rand 产生随机数。rand函数头文件: 定义函数:int rand(void)函数功能:产生随机数函数说明:因为rand的内部实现是用线性同余法做的,他不是真的随机数,只不过是因为其周期特别长,所以,在一定的范围里可看成是随机的。rand()会返回一随机数值,范围在0至RAND_MAX 间。在调用此函数产生随机数前,必须先利用转载 2017-08-31 15:02:37 · 987 阅读 · 0 评论 -
分组背包
问题有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。这些物品被划分为若干组,每组中的物品互相冲突,最多选一件。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。算法这个问题变成了每组物品有若干种策略:是选择本组的某一件,还是一件都不选。也就是说设f[k][v]表示前k组物品花费费用v能取得的最大权值,则有:f[k][v]=max转载 2018-01-03 11:25:37 · 169 阅读 · 0 评论 -
尼姆博弈
尼姆博弈(Nimm's Game)题型尼姆博弈模型,大致上是这样的:有3堆各若干个物品,两个人轮流从某一堆取任意多的物品,规定每次至少取1个,多者不限,最后取光者得胜。 分析1、首先自己想一下,就会发现只要最后剩两堆物品一样多(不为零),第三堆为零,那面对这种局势的一方就必败那我们用(a,b,c)表示某种局势,首先(0,0,0)显然是必败态,无论谁面对(转载 2018-01-04 21:59:33 · 446 阅读 · 0 评论 -
背包问题:多重背包的优化
在背包九讲里面将多重背包转化为01背包,并且进行时间优化,有利用到一个二进制分解的思想。下面是在网上搜索之后得到的一个关于二进制分解思想的讲解和实现多重背包二进制分解思想讲解/** 在这之前,我空间好像转过一个背包九讲,现在我就只对 01背包和多重背包有点印象了 先说下 01 背包,有n 种不同的物品,每个物品有两个属性 size 体积,value 价值...转载 2017-08-14 19:38:39 · 897 阅读 · 0 评论 -
pair(2)
Pair类型概述pair是一种模板类型,其中包含两个数据值,两个数据的类型可以不同,基本的定义如下: pair a;表示a中有两个类型,第一个元素是int型的,第二个元素是string类型的,如果创建pair的时候没有对其进行初始化,则调用默认构造函数对其初始化。 pair a("James", "Joy");也可以像上面一样在定义的时候直接转载 2017-07-20 20:55:19 · 607 阅读 · 0 评论 -
map and pair (1)
这是C++学习过程中,比较难理解抽象的知识,现在总结概括于此,望对大家有所帮助:一般地当我们只想知道一个值是否存在时,set 最有用处;希望存储也可能修改一个相关的值时,map 最为有用. map提供一个键值对容器,在map(也叫关联数组)中我们提供一个键/值对,键用来索引,而值用作被存储和检索的数据. 在使用map和set时两个最主要的动作是向里面放入转载 2017-07-20 20:49:02 · 346 阅读 · 0 评论 -
map(1)
map 是 STL 的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在 map 中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里简单说一下 map 内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在 map 内部所有的数据都转载 2017-07-20 20:42:47 · 514 阅读 · 0 评论 -
c++ vector(2)
原文链接:http://blog.youkuaiyun.com/hancunai0017/article/details/7032383点击打开链接vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间的目的. 用法: 1.文件包含:转载 2017-06-10 02:13:33 · 422 阅读 · 0 评论 -
next_permutation函数 (1)
原文链接:http://blog.sina.com.cn/s/blog_9f7ea4390101101u.html点击打开链接这是一个求一个排序的下一个排列的函数,可以遍历全排列,要包含头文件下面是以前的笔记 与之完全相反的函数还有prev_permutation (1) int 类型的next_permutation int main(){ int a转载 2017-06-10 01:53:11 · 217 阅读 · 0 评论 -
next permutation函数(2)
原文链接http://blog.youkuaiyun.com/acdreamers/article/details/8544505点击打开链接next_permutation的函数声明:#include bool next_permutation( iterator start, iterator end);next_permutation函数的返回转载 2017-06-10 01:57:39 · 217 阅读 · 0 评论 -
next permutation函数(3)
原文链接:http://leonard1853.iteye.com/blog/1450085点击打开链接1、碰到next_permutation(permutation:序列的意思)今天在TC上碰到一道简单题(SRM531 - Division Two - Level One),是求给定数组不按升序排列的最小字典序列(Sequence of numbers A is转载 2017-06-10 01:59:14 · 226 阅读 · 0 评论 -
二分查找
原文链接:http://blog.youkuaiyun.com/yefengzhichen/article/details/52372407#comments点击打开链接二分查找多次刷题时遇到,虽然每次也能写对,但花了蛮多时间,没好好想过。而且网上的太多版本,并不是很简洁,而且边界条件变化情况太多,容易混淆,下面是自己对二分查找的一些思考和总结,尽量写得简单易懂。三种基本版转载 2017-06-05 00:16:20 · 342 阅读 · 0 评论 -
快速幂
快速幂取模算法在网站上一直没有找到有关于快速幂算法的一个详细的描述和解释,这里,我给出快速幂算法的完整解释,用的是C语言,不同语言的读者只好换个位啦,毕竟读C的人较多~所谓的快速幂,实际上是快速幂取模的缩写,简单的说,就是快速的求一个幂式的模(余)。在程序设计过程中,经常要去求一些大数对于某个数的余数,为了得到更快、计算范围更大的算法,产生了快速幂取模算法。[有读者反映在讲快速幂部分时有点转载 2017-06-04 23:38:34 · 224 阅读 · 0 评论 -
gcd and lcm
原文链接:http://blog.youkuaiyun.com/troubleshooter/article/details/25394959点击打开链接//**************************************************************************************************** // // 求两个自然数的最小公倍数 -转载 2017-06-17 22:20:39 · 393 阅读 · 0 评论 -
树状数组(1)
引用请注明出处:http://blog.youkuaiyun.com/int64ago/article/details/7429868 写下这个标题,其实心里还是没底的,与其说是写博帖,不如说是做总结。第一个接触树状数组还是两年前,用什么语言来形容当时的感觉呢?……太神奇了!真的,无法表达出那种感觉,她是那么的优雅,10行不到的代码,却把事情干的如此出色!没有了解她原理的前提下即使把转载 2017-07-10 16:40:47 · 235 阅读 · 0 评论 -
优先队列
转载原文http://blog.youkuaiyun.com/senyelicone/article/details/51850284点击打开链接[cpp] view plain copy#include #include using namespace std; priority_queueint> da; //大根转载 2017-06-05 00:02:38 · 304 阅读 · 0 评论 -
线段树(2)
线段树详解By 岩之痕目录:一:综述二:原理三:递归实现四:非递归原理五:非递归实现六:线段树解题模型七:扫描线八:可持久化 (主席树)九:练习题一:综述假设有编号从1到n的n个点,每个点都存了一些信息,用[L,R]表示下标从L到R的这些点。线段树的用处就是,对编号连续的一些点进行修改或者统计操作,修改转载 2017-07-13 18:51:29 · 353 阅读 · 0 评论 -
线段树(3)
一步一步理解线段树目录一、概述二、从一个例子理解线段树 创建线段树 线段树区间查询 单节点更新 区间更新三、线段树实战--------------------------一 概述线段树,类似区间树,它在各个节点保存一条线段(数组中的一段子数组),主要用于高效解决连续区间的动态查询问题,由于二叉结构的特性,它基本能保持每个操作的复杂转载 2017-07-13 18:59:49 · 190 阅读 · 0 评论 -
并查集
并查集及应用在信息学竞赛中,并查集是一种不可忽视的一部分内容,把最近几年的NOI和NOIP复赛题目大致浏览了一遍,发现有好几道应用并查集的题目,因此本文由浅入深的介绍并查集在编程中的巧妙应用。什么是并查集?并查集是一种树型的数据结构,用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。常常在使用中以森林来表示。集就是让每个元素构成一个单元素的集合,并就是按一定顺序转载 2017-07-20 20:01:05 · 715 阅读 · 0 评论 -
背包问题:背包九讲
P01: 01背包问题 题目 有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。 基本思路 这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。 用子问题定义状态:即f[i][v]表示前i件物品恰放入一个容量为v的背包可以获得的最大价值。则其状态转移方程便是:f[i][v]=max{...转载 2017-08-14 17:54:50 · 260 阅读 · 0 评论