首页 > 代码库 > 各种模板(part 2)
各种模板(part 2)
堆:
1 using namespace dui //堆 2 { 3 #include<queue> //需要的库 4 priority_queue < int > Q; //定义一个Q的大根堆,top()为较大的 5 priority_queue < int,vector < int >,greater< int > > q; //定义一个q的小根堆。top()为较小的 6 q.empty() //判断队空 7 q.push(x) //将x放入队列 8 q.pop() //将队头删除 9 q.size() //返回堆中元素个数10 q.top() //返回队头11 12 //在结构体中自己定义优先级13 struct node14 {15 int id,v;16 friend bool operator < (node n1, node n2)17 {18 return n1.v>n2.v; //要满足的条件19 }20 }f[maxn];21 priority_queue<node>q;22 }
图的建立+遍历
1 using namespace tu //图 2 { 3 int len=0,linkk[maxn]; 4 struct node //邻接表 5 { 6 int x,y,v; 7 }e[maxn]; 8 init(int xx,int yy,int vv) 9 {10 e[++len].y=linkk[xx];linkk[xx]=len;11 e[len].x=yy;e[len].v=vv;12 }13 14 struct node // 边表15 {16 int x,y;17 }e[maxn];18 19 void dfs(int k) //邻接矩阵的dfs20 {21 for(int i=1;i<=n;i++)22 {23 if((a[k][i])&&(!f[i]))24 {25 f[i]=1;26 dfs(i);27 }28 }29 }30 31 void dfs(int k) //邻接表的dfs32 {33 for(int i=linkk[k];i;i=e[i].y)34 {35 if(!f[e[i].x])36 {37 f[e[i].x]=1;38 dfs(e[i].x);39 }40 }41 }42 }
各种模板(part 2)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。