前言
传送门 : 笑死了, c i n cin cin和自己写的貌似冲突爆炸了 debug半小时愣是看不出来什么
思路这题 首先是找 连通块
然后就是判断连通块是否相等
对于一个图形是否相等 我们可以根据奥数
(如果一个图形中 每个点之间的距离之和 不同 那么这两个图形是不同的)
hash碰撞的概率很小
CODE#include
using namespace std;
struct node
{
int cnt;//星座的大小
int x[210],y[210];//每一个点的坐标
int zuji;//祖籍,记录是哪一种星座
double s;//记录每一个点与别的点的距离总和
}f[510];//记录星座
int len,now;//len表示f的长度,now表示现在星座的数量
int n,m;
bool a[110][110];//这个点是否有天体
int bk[110][110];//bk记录这一个点属于哪一个f集合
inline int _(int x){return x*x;}
inline double find(int x1,int y1,int x2,int y2)//查找距离
{
return sqrt(double(_(x1-x2)+_(y1-y2)));
}
inline int check(int k)
{
int i,j;f[len].s=0.0;
for(i=1;i
关注
打赏