论C++语言在信息学竞赛中的应用.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

STL算法一览替换类replace(),replace_if(),replace_copy(),replace_copy_if()填充发生类fill(),fill_n(),generate(),generate_n()删除类remove(),remove_if(),remove_copy(),remove_copy_ifSTL算法一览去重类unique(),unique_copy()反转类reverse(),reverse_copy()旋转类rotate(),rotate_copy()随机打乱类random_shuffle()STL算法一览排序类sort(),stable_sort(),partial_sort(),partial_sort_copy(),nth_element()二分查找类lower_bound(),upper_bound(),equal_range(),binary_search()合并类merge(),inplace_merge()STL算法一览分区类partition(),stable_partition()集合运算类includes(),set_union(),set_intersection(),set_difference(),set_symmetric_difference()堆操作类make_heap(),push_heap(),pop_heap(),sort_heap()STL算法一览最大最小类min(),max(),min_element(),max_element()排列类next_permutation(),prev_permutation()数值运算类accumulate(),inner_product(),partial_sum(),adjacent_difference()常用算法介绍(排序)排序算法原型templateclass?Ran

void?sort(Ran?first,?Ran?last);

templateclass?Ran,?class?Cmp

void?sort(Ran?first,?Ran?last,?Cmp?cmp);时间复杂度:平均O(nlogn),最坏O(n2)使用举例sort(a,?a?+?n);sort(b,?b?+?m,?greaterint());常用算法介绍(二分查找)二分查找算法原型:templateclass?For,?class?T

bool?binary_search(For?first,?For?last,?const?T?val);templateclass?For,?class?T

For?lower_bound(For?first,?For?last,?const?T?val);templateclass?For,?class?T

For?upper_bound(For?first,?For?last,?const?T?val);templateclass?For,?class?T

pairFor,?For?equal_range(For?first,?For?last,

????const?T?val);时间复杂度:随机迭代器O(logn),其他O(n)常用算法介绍(二分查找)算法的要求序列有序查找的谓词与排序的谓词相同算法的作用binary_search()返回val是否在序列中。lower_bound()返回指向序列中第一个大于或等于val的元素的迭代器。upper_bound()返回指向序列中第一个大于val的元素的迭代器。equal_range()返回一个pair,表示序列中与val相等的元素所构成的子序列。算法的组合使用例如,要对一组范围较大的整数进行离散化,步骤如下:用sort()排序;用unique()去掉重复的元素;对于每个整数,用lower_bound()查找在序列中的位置。例题:最长单调递增子序列题目描述给定一个长度为n的整数序列A={a1,a2,...,an},求一个最大的整数m,使得存在另一个序列P={p1,p2,...,pm},满足,且。约束条件n不超过30,000ai在[0,1,000,000,00)的区间内思路分析原算法设fi表示结尾元素为原序列中第i个元素的最长单调递增序列的长度(为了简便,设a0=-∞,f0=0),状态转移方程如下:时间复杂

文档评论(0)

雨中人 + 关注
实名认证
文档贡献者

这一世渡尽红尘,若有来生,不再为人。

1亿VIP精品文档

相关文档