简谈图论重要性&&图论总结

从外地学习回来,我对图论才有认识(以前就没接触过,非常尴尬),说实话,学好图论的重要性,就像学数学时在进行解析几何时,图极有可能是打开答案的最后秘钥,也就是数形结合,而懂的人永远明白,用图解决绝对比用解析简单(一般情况)。而图论对于oi选手说,就是一大杀器,有可能利己,也可能抱憾终身。所以说图论的重要性就很显然了。

 

大家在进入图论的时候,应该先掌握链式前向星建图,当然也可以叫邻接表,先附上我喜欢的模板

struct node{
    int next,to,w;
}edge[maxn<<4];

int head[maxn],cent;

void add(int u,int v,int w){
    edge[++cent]=(node){head[u],v,w}; head[u]=cent;
}

  

  ——所谓模板,也就是自己喜欢的颜色涂上而已。

 

  当然还有一些其他知识,比如说vector建图,这种建图的方式优点是难度小,而且还可以排序,这个在NOIP2018的D2T1上有极大优势。

scan(a),scan(b);
vec[a].push_back(b);
vec[b].push_back(a);

  然后只要简单地定义排序一下,即可用食。

  还有树形dp,这在树形图中将是一大助力,这里是dp求直径。

void dp(int s,int fa){
    for(int i=head[s];i;i=edge[i].next){
        int y=edge[i].to;
        if(vi[y]) continue;
        if(y==fa) continue;
        dp(y,s);
        an=max(anx,root[x]+root[y]+edge[i].w);
        root[s]=max(root[s],root[y]+edge[i].w);
    }
}

  在入门之后,请仔细思考与总结

  总结方法:

  1. 反向建边 例题

  2. 路径记数,加法原理,并加上限制条件 例题

  3. 巧妙运用二分图的检验 例题

  4. 学习二分图的技巧,学会在只有两种条件有关系时,转化成二分图 例题

  5. 深刻理解floyd的逐个点处理 例题

  6. 二分答案对于路径长度和其他条件的单调性处理 如4中例题

  7. 分清SPFA(没死透)和Dij两者各自的优势,注意负环

  8. 在最小生成树中,注意prim和kruskal各自的优势

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值