链接:POJ 1021
题意:给你两个图,判定图中由字母组成的区域多边形是否一一对应相等,换句话说,图二与图一中的所有的区域多边形能建立起满射关系。
如果来自两个图的两个多边形全等(可以不位似),即可认为是一一对应了
看到这个题。。很晕。。
借鉴的网上的思路(话说怎么总遇到这种题。。自己想真是想不出好办法。。做题太少了)
对每一个有字母的点,搜索四个方位能相连成线的字母点,把能这样找到的字母总数+1记为这个字母点的value,对于每个图,求出每个点的value,计入一个数组,并排序。
比较两个图的排序数组,完全一样,则说明是等效的图。
这个思路是正确的,但我还没有想出如何能够清楚地写出证明过程,总感觉是个几何推演的问题。
比如说,这两个图的排序数组里面都有相同个数的1,说明有相同个数的孤立点,等价。
有相同个数的2,说明有相同个数的,由两个字母组成的对,等价。(这里头对应的字母点不可能是更大的多边形内的点,因为后者的value必然更大。这是由题意对“构成多边形”的定义所决定的。
以此类推,value的等价就能决定图的等价。
很有趣的思路
代码:
#include <iostream>
#include <cstring>
#include &