• 第三天。。。


    今天学习了STL中的一些函数

    stack~~~~~栈,FILO,push进,pop出最后一个push的元素

    queue~~~~~队列,FIFO,push进,pop出第一个push的元素

    deque~~~~~双向队列,可push_front, push_back, pop_front, pop_back,来在队列前面,后面输入,从队列前面后面弹出元素

    set~~~~~,set中的元素不能重复。insert(),向set中插入元素。erase(???),擦除set中的某元素。count(???),在set中查找是否有某元素,是则返回1,否则返回0。

    algorithem~~~~~sort,将元素从小到大排序,sort(begin(),end()),若要降序排列可写成sort(begin(),end(),greater<>()),注意左闭右开  [   )。

    string~~~~~与字符串相关的函数,string可直接定义字符串,size()或lenth()某字符串的长度。string 中字符串的+将两个字符串连接起来。

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    二分法查找(复杂度低):

    首先将数列排序,a[r-l],一般升序,查找  x,数列左右两端分为 a[ l],a[ r]。

    while(l<=r)

    {

      mid= l + ( r - l )/2;

      if(a[mid]==x) return 1;

      else if (  a[mid] < x )     l = mid +1 ;  

      else if (  a[mid] > x )     r = mid -1 ;     

    }

    return -1;

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    并查集:

    ”并“:两个数    a  ,  b;合并,可视为  a  是  b  的  “爹”,再有    b  ,  c 合并,则  b 是  c 的爹,又因a是b的爹,  所以a也是c的爹。  a<------b<------c        

    fa[k]=k; 一开始,各自是各自字的爹;

    fa[b] = a ;

    fa[c] = b ;

     fa[ find(b) ]=find( a ) ;

     ”查“~~~~~找爹函数。。

    int fa[k]=k;

    int find(   int  x  )

    {

      if ( fa[x]==x;) return k;

      else return   fa[x]  =   find (  fa[x]  );

    }

  • 相关阅读:
    图论集合
    无向连通图求割点(tarjan算法去掉改割点剩下的联通分量数目)
    河南省第七届ACM程序设计大赛总结
    单源最短路(spfa),删边求和
    最小圆覆盖
    二分图最大独立集
    二分图最少路径覆盖
    二分图最少点覆盖
    二分图最大匹配(匈牙利算法)
    最小费用最大流模板题
  • 原文地址:https://www.cnblogs.com/poo7/p/11621052.html
Copyright © 2020-2023  润新知