太强啦~

hash好神奇

将一片幸运的任意两点间的距离作为hash,这样可能会冲突,但是概率极低。

#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <queue>
#include <cmath>
using namespace std;using P = pair<int, int>;
#define x first
#define y secondconst int n = 110;
const double eps = 1e-6;// 8联通的方向
int dx[] = {0, 1, 0, -1, 1, -1, 1, -1};
int dy[] = {1, 0, -1, 0, 1, -1, -1, 1};
int N, M;
// 图
string s[n];
vector<P> v;// 两点间的距离
double get_dist(P a, P b)
{double dx = a.x - b.x;double dy = a.y - b.y;return sqrt(dx * dx + dy * dy);
}
// 哈希值为:任意两点间的距离之和
double get_hash()
{double sum = 0;for (int i = 0; i < v.size(); i++)for (int j = i + 1; j < v.size(); j++)sum += get_dist(v[i], v[j]);return sum;
}
// 哈希函数
char get_id(double key)
{static int index = 0;static double hash[30];// 若有当前哈希值for (int i = 0; i < index; i++)if (fabs(key - hash[i]) < eps)return i + 'a';// 一个新的哈希值hash[index++] = key;return index - 1 + 'a';
}void dfs(int a, int b)
{s[a][b] = '0';// 记录每个为1的点v.push_back({a, b});for (int i = 0; i < 8; i++){int nx = dx[i] + a;int ny = dy[i] + b;if (nx >= 0 && nx < N && ny >= 0 && ny < M && s[nx][ny] == '1')dfs(nx, ny);}
}int main()
{cin >> M >> N;for (int i = 0; i < N; i++)cin >> s[i];for (int i = 0; i < N; i++)for (int j = 0; j < M; j++)if (s[i][j] == '1'){// 存一片星空v.clear();dfs(i, j);// 获取哈希char c = get_id(get_hash());// 赋值for (auto &e : v){s[e.x][e.y] = c;}}for (int i = 0; i < N; i++)cout << s[i] << endl;return 0;
}

星空之夜_hash+dfs相关推荐

  1. AcWing 1402. 星空之夜 1月28

    AcWing 1402. 星空之夜 1月28 题意: 一个星群是指一组非空的在水平,垂直或对角线方向相邻的星星的集合. 一个星群不能是一个更大星群的一部分. 星群可能是相似的. 如果两个星群的形状.包 ...

  2. 寒假每日一题(提高组)【Week 1 完结】

    目录 1402. 星空之夜[dfs + 哈希] 479. 加分二叉树[DP] 1414. 牛异或[trie] 1402. 星空之夜[dfs + 哈希] https://www.acwing.com/p ...

  3. 华为让爱成双活动,缤纷好礼回馈消费者

    2月2日,华为举办的"让爱成双"活动,不仅在服务APP推出互动小游戏.抖音平台小视频等众多新玩法.同时,华为商城和各大电商平台华为旗舰店还带来多重超值福利活动.即便消费者足不出户, ...

  4. html爱情表白神器,回忆纪念册(附源码)

    文章目录 1.设计来源 1.1 主界面 1.2 相关界面 2.效果和源码 2.1 动态效果 2.2 源代码 源码下载 作者:xcLeigh 文章地址:https://blog.csdn.net/wei ...

  5. 2.14调情方案之个性情人节

    他们说:"情人的眼里容不下沙子." 我们说:"情人的眼里只有彼此." 在2.14这样的日子,放下平日的矜持与羞涩,放松自己的心灵与肌体,来吧,和你的情人调调情, ...

  6. “机器人之夜”看猎豹跑得快还是五款机器人价格降得快?“鸿门宴”正式上演

    来源:机器人大讲堂 3 月 21 日,猎豹移动(NYSE: CMCM)联合旗下人工智能公司猎户星空在北京水立方举行"猎豹3.21机器人之夜"发布会,发布自主研发的猎户机器人平台Or ...

  7. 用python画梵高星空-python 梵高

    广告关闭 2017年12月,云+社区对外发布,从最开始的技术博客到现在拥有多个社区产品.未来,我们一起乘风破浪,创造无限可能. 对于一个视频来说,只需要将每一帧都转换后输出,并按照一定的时间间隔清屏. ...

  8. 千灯照碧云,越夜越星沙

    (题图摄影:邓建辉) 文 | 弘乐.陈曦 来源 | 螳螂财经(ID:TanglangFin) "晚上去红记吃小龙虾啊!"准备下班的李强拿着电话呼朋唤友.和他一起下楼的同事伍娟听到了 ...

  9. matlab模拟三体运动_从灯泡到超级计算机,如何模拟浩瀚星空?| 赛先生

    天文学家中有这样一群人,他们既不观星,也不刷公式,而是通过模拟来研究浩瀚星空.在星团.星系这样的恒星系统中,往往包含着上百万颗恒星,规模如此惊人的恒星系统该如何处理?本期"赛先生天文&quo ...

  10. NOIP模拟测试17「入阵曲·将军令·星空」

    入阵曲 题解 应用了一种美妙移项思想, 我们先考虑在一维上的做法 维护前缀和$(sum[r]-sum[l-1])\%k==0$可以转化为 $sum[r]\% k==sum[l-1]\%k$开个桶维护一 ...

最新文章

  1. 利用U盘进行软件加密(转)
  2. 递归函数反向显示单链表
  3. .net多线程 Thread
  4. tomcat 6.0环境, 网页超链接,文件下载另存为时,不能识别msi文件类型,另存为只能选htm和所有文件。...
  5. 微信支付开发(7) 刷卡支付
  6. P3954 [NOIP2017 普及组] 成绩(python3实现)
  7. 【PE】手动给PE文件添加一段代码MessageBoxA
  8. iptables联系一
  9. 华为IS-IS基础配置
  10. 18.UNIX 环境高级编程--终端IO
  11. tp读取配置文件机制
  12. Java字符编码转换过程说明
  13. Ae 效果详解:CC Grid Wipe
  14. TcaplusDB X 黎明觉醒,探索不止,黎明将至
  15. Python:变身超级赛亚人
  16. docker防止fork炸弹
  17. linux 环境变量复制,LINUX系统环境变量PATH ,cp命令 ,mv命令,文档查看cat/more/less/head/tail...
  18. Playframework介绍
  19. 【matlab】机器学习与人工智能期末课设,基于 K-means 聚类算法的图像区域分割系统
  20. 如何衡量和提高推荐计划的投资回报率

热门文章

  1. Stubs和Mocks区别 (Stubs vs. Mocks)
  2. 参数显著性检验的p值小于显著性水平不等于其具有经济学意义
  3. 树的深度优先和广度优先
  4. 【工控老马】欧姆龙PLC FINS指令模板整理
  5. LimeSDR 中文教程 (三)
  6. android多开原理和检测。
  7. 2019年数学建模美赛经验总结
  8. js replace 中文分号_关于js分号的问题?
  9. 浏览器打开标签页的几种方式
  10. 硬盘异响(嗑啦嗑啦)的可能原因