小技巧—双向边快速枚举
小技巧—双向边快速枚举
在与图有关的题中,我们可能会建立双向边。那么如果我们想要对这条双向边(也就是两条有向边)同时做操作。咋整?
第一种方法:从2开始存边的编号,然后异或1即可。
第二种方法:新开数组记录双向边编号是谁。
第三种方法:直接暴力再开个循环判一下。(它死了
着重讲解一下第一种方法,也是最常用、省空间的方法。因为本蒟蒻的位运算也很菜。
这种方法就相当于用偶数的方法把原边变成”一对一对“的边。
然后进行异或,就会保证这个原边会被异或过去。
在与图有关的题中,我们可能会建立双向边。那么如果我们想要对这条双向边(也就是两条有向边)同时做操作。咋整?
第一种方法:从2开始存边的编号,然后异或1即可。
第二种方法:新开数组记录双向边编号是谁。
第三种方法:直接暴力再开个循环判一下。(它死了
着重讲解一下第一种方法,也是最常用、省空间的方法。因为本蒟蒻的位运算也很菜。
这种方法就相当于用偶数的方法把原边变成”一对一对“的边。
然后进行异或,就会保证这个原边会被异或过去。