题目如下(每年三题):
1

2

3

4

5
一个简单图有 N(2≤N*≤10000)个顶点,某些顶点之间有边相连,边共有 N-1条。 任意两个顶点之
间,有且只有一条不经过重复边的路径把它们连在一起。
顶点 i 有一个权重 e_i,所有权重均为非负整数, 且范围在 int 内。对于任意节点 i和 j,定义 A(i,j)
为从 i到 j 的路径上所有顶点(包括 i 和 j)的权重相异或得到的数值。
请根据输入中的查询要求,计算出相应的 A(i,j)
6
一个 1000 行, 1000 列的方格表中,画了一条长度小于等于 2000 的折线。
折线起始于某个格子的中心,结束于另外一个格子的中心。
折线的每一部分都与方格的边平行,每当穿过一个格子时一定经过其中心,并且该折线绝对不会与
自己相交。(下图显示了一个这样的折线作为例子。)
很可惜,你或者你的程序都无法直接看到这个方格表,也就无法知道这条折线具体所在的位置。为
了找到这条折线的头和尾,你的程序可以提出一些查询:你的程序选择方格表中的任意一个矩形,
然后它就可以得知以上折线与该矩形的边共有多少个交点。
例如在下图中,程序选择了一个 2 行 2 列的矩形,折线与该矩形的边共有 4 个交点。
请用尽量少的查询,找到折线的头和尾
请问大概要达到什么算法水平才能顺利通过机试?以及大概的学习思路(无竞赛经历,掌握基础的c语言编写能力,下学期会修数据结构与算法与离散数学)
