考试内容:
图论4题。
总分:
44。
第一题:
Fj有N个硬币,编号为1..N。
现在有W个推断,为(A,B),表示硬币A比硬币B重。
寻找并输出一个硬币编号,要求其重量明确不同于其他硬币的个数最多。
如果有多个答案,输出字典序最小的一个。
如果给出的数据有矛盾,输出”IMPOSSIBLE”
考试时思路:通过画图,发现这是一张有向图,然后开始了dfs,把和该点相连的店都做一遍dfs。同时在开头做一遍判断,如果有环就需要输出“IMPOSSIBLE”。
第二题:
现在有N(1 <= N <= 2000)头奶牛在玩 超级牛 游戏。每头奶牛有一个唯一的ID,ID范围是 1 … 2 ^ 30-1。
超级牛比赛是淘汰赛 - 每场比赛后,输者退赛,赢者继续留在比赛,直到只剩一队游戏结束。
输赢是FJ自己决定的,或者说结果可以任意决定!
比赛的积分规则十分奇葩:积分=第一队的ID XOR 第二队的ID。 比如,12队和20队打比赛,积分是24,因为01100 XOR 10100 = 11000。
FJ认为,分越高越刺激。所以他想让总积分最高。请帮助FJ设计比赛。
考试时思路:其实这题的^毫无卵用,就是点之间的权值而已。
还是通过画图,所有牛都需要经过比赛,不断进行最大的可以进行的比赛。
是不是似曾相识??是的它就是个最大生成树,Prime跑一边就好了。
但是要注意用long long,因为这个炸了9个点。。
第三题:
农夫John的农场遭受了一场地震.有一些牛棚遭到了损坏,但幸运地,所有牛棚间的路经都还能使用.
FJ的农场有P(1 <= P <= 30,000)个牛棚,编号1..P. C(1 <= C <= 100,000)条双向路经联 接这些牛棚,编号为1..C. 路经i连接牛棚a_i和b_i (1 <= a_i<= P;1 <= b_i <= P).路经 可能连接a_i到它自己,两个牛棚之间可能有多条路经.农庄在编号为1的牛棚.
N (1 <= N <= P)头在不同牛棚的牛通过手机短信report_j(2 <= report_j <= P)告诉FJ它 们的牛棚(report_j)没有损坏,但是它们无法通过路径和没有损坏的牛棚回到到农场.
当FJ接到所有短信之后,找出最小的不可能回到农庄的牛棚数目.这个数目包括损坏的牛棚.
考试时思路:将和打电话的牛棚相连的地方都视为被破坏。考试中只把直接相连的点给拆了,没有邻接表遍历,导致爆炸。
第四题:
农夫John的农场遭受了一场地震.有一些牛棚遭到了损坏,但幸运地,所有牛棚间的路经都还能使用.
FJ的农场有P(1 <= P <= 30,000)个牛棚,编号1..P. C(1 <= C <= 100,000)条双向路经联 接这些牛棚,编号为1..C. 路经i连接牛棚a_i和b_i (1 <= a_i<= P;1 <= b_i <= P).路经 可能连接a_i到它自己,两个牛棚之间可能有多条路经.农庄在编号为1的牛棚.
N (1 <= N <= P)头在不同牛棚的牛通过手机短信report_j(2 <= report_j <= P)告诉FJ它 们的牛棚(report_j)没有损坏,但是它们无法通过路径和没有损坏的牛棚回到到农场.
当FJ接到所有短信之后,找出最小的不可能回到农庄的牛棚数目.这个数目包括损坏的牛棚.
考试时思路:一开始想到的是并查集,然后忘记怎么写了,而且仔细一想觉的好像不行。。。
后来想到构造一颗树,树底的层数就是答案。但是由于太菜没有用代码实现的能力。。
然后开始骗分,然后发现老师丧心病狂的没有-1。。GG
争取在这个月里写出题解把……任重道远的说