好吧。。我的第二题现在还是挂着,算了,就把第二题无视掉吧,贴一下ACD的解题思路。
A 水题,不说太多,直接模拟就可以了,用a数组表示指定位置的d,为了防止出现负数,把x都加了20000,读取了一个x和一个d,判断a[x+d]是否是-d即可,如果是,就说明找到了一对。
我的代码:
C 欧拉通路变形,因为要保证每个点都访问到一次,于是就找从奇度数结点出发进行dfs,运用类似套圈法的方法来把结点加入路径中。
还要注意因为范围很大,所以需要离散化,或者用map来存放结点信息。
我的代码:
D 经典LCA问题,为了得到有顺序的结点,我们求出相邻的结点的LCA即可,建议大家先看相关的资料再理解这个算法。
我的代码: