NOIP

并查集

模板:

int Find(int x)
{
  return (fa[x]==x)?x:(fa[x]=find(fa[x]));
}
void Union(int a,int b)
{
  p1=Find(a); p2=Find(b);
  if(p1!=p2) fa[p1]=p2;
}

类别偏移:小胖的奇偶(poj1733)、食物链(poj1182)、黑帮团伙(poj1703)
**带权并查集:**poj1962、银河英雄传
**其他:**poj1417(并查集+dp)、poj1456(贪心+并查集)

拓扑

一般用于判断有向环,及AOV,有Kahn算法和dfs算法
模板

  l=1; r=0; 
  for (i=1; i<=n; i++)
    if (d[i]==0) {r++; q[r]=i;}
  while (l<=r)
  {
    x=q[l]; j=head[x];
    while (j>0)
    {
      v=e[j].v;
      /*
        主体
      */
      d[v]--;
      if (d[v]==0) 
      {
        r++; q[r]=v;
      }
      j=e[j].nx;
    }
    l++;
  }

题目:重叠的方块(poj1128)(搜索+拓扑)、比赛名次(hdu1285)、长方体(hdu3231)(三维拓扑)、rank of tetris(hdu1811)(拓扑+并查集)

二分图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值