NOIP考纲 图论
来源:互联网 发布:不喝牛奶 知乎 编辑:程序博客网 时间:2024/04/30 04:04
从今天开始复习NOIP的考纲,每天复习一些,内容包括板子之类的。
DAY1 图论
1.Tarjan
http://blog.csdn.net/qq_35866453/article/details/52589539
2.LCA
倍增LCA:
function lca(a,b:longint):longint;var i,j:longint;begin if deep[a]<depp[b] then swap(a,b); i:=0; while (1<<i)<=deep[a] do inc(i); dec(i); for j:=i downto 0 do if deep[a]-(1<<j)>=deep[b] then a:=f[a,j]; if a=b then exit(a); for j:=i downto 0 do if (f[a,j]<>-1)and(f[a,j]<>f[b,j]) then begin a:=f[a,j]; b:=f[b,j]; end; exit(f[a,0]);end;
tarjan求lca
procedure tarjan(x:longint);var i,v:longint;begin vis[x]:=1; fa[x]:=x; i:=head1[x]; while i<>0 do//第一个邻接表储存询问 begin v:=go1[i]; if vis[v] then ans[id[i]]:=find(v); i:=next1[i]; end; i:=head[x];//第二个邻接表储存图 while i<>0 do begin v:=go[i]; if not vis[v] then begin dis[v]:=dis[x]+len[i]; tarjan(v); fa[v]:=x; end; i:=next[i]; end;end;
3.最小(大)生成树
kruskal
var f:array[1..1001] of longint; a:array[0..500001,1..3] of longint; i,j,k,n,m,x,y,c:longint; s:int64;procedure qsort(l,r:longint); var x,y,m:longint; begin x:=l; y:=r; m:=a[(l+r) div 2,3]; repeat while a[x,3]<m do inc(x); while a[y,3]>m do dec(y); if x<=y then begin a[0]:=a[x]; a[x]:=a[y]; a[y]:=a[0]; inc(x);dec(y); end; until x>y; if l<y then qsort(l,y); if r>x then qsort(x,r); end;function fu(z:longint):longint; var x,y:longint; begin y:=z; while y<>f[y] do y:=f[y]; while z<>y do begin x:=f[z]; f[z]:=y; z:=x; end; exit(y); end;begin readln(n,m); for i:=1 to m do begin readln(x,y,c); a[i,1]:=x; a[i,2]:=y; a[i,3]:=c; end; qsort(1,m); for i:=1 to n do f[i]:=i; s:=0; for i:=1 to m do begin j:=fu(a[i,1]); k:=fu(a[i,2]); if j<>k then begin s:=s+a[i,3]; f[j]:=k; end; end; writeln(s);end.
比较简单,常用
4.二分图匹配(匈牙利)(判断二分图在最上面的那个网址,当然自己随手打个染色也是可以的。)
bool dfs(int u){ for(int i = head[u]; i != 0; i = e[i].nex){ int v = e[i].v; if(!vis[v]){ vis[v] = true; if(link[v] == -1 || dfs(link[v])){ link[v] = u; return true; } } } return false;}
5.最短路
自行百度。(我觉得不会考dij+heap)
0 0
- NOIP考纲 图论
- NOIP考纲
- NOIP考纲总结+NOIP考前经验谈
- NOIP考纲 字符串&排序
- 【NOIP】NOIP考纲总结+NOIP考前经验谈
- [NOIP]自己收集总结的NOIP考纲
- {福利}NOIP考纲总结+NOIP考前经验谈
- 2015 NOIP考后心得
- 2017NOIP考后总结
- 10.5NOIP模拟考 dfs序+贪心
- 10.12 NOIP图论模拟考
- noip/信息技术选考 进制转化
- 【NOIP模拟考一】组合数学 day1 third 子集
- 【NOIP模拟考三】水资源 day2 first 序列计数
- NOIP模拟考栽阴沟了,惨痛爆零
- 软件考试考纲
- 软件设计师考纲
- 软件设计师考纲
- Linux c==使用UDP实现网络通信(14)
- C++中的回调函数,函数指针理解
- Java发送邮件
- 嵌入式学习--work11 关于SPI的深入学习及软件模拟SPI(LCD调试所遇)
- MySQL触发器
- NOIP考纲 图论
- 征兵
- HDU 1254 推箱子 搜索中搜索
- AdMob(app内嵌广告)原生广告
- 开发android版本的直播app
- 19. Remove Nth Node From End of List (Easy)
- 使用inline-block导致其他元素无法居中
- 第十二周 项目4-l利用遍历思想求解图问题
- 与开发团队高效协作的8个小技巧