AcWing 1402. 星空之夜 1月28

题意:

一个星群是指一组非空的在水平,垂直或对角线方向相邻的星星的集合。
一个星群不能是一个更大星群的一部分。
星群可能是相似的。
如果两个星群的形状、包含星星的数目相同,那么无论它们的朝向如何,都认为它们是相似的。
给定一个夜空二维矩阵,请你将其中的所有星群用小写字母进行标记,标记时相似星群用同一字母,不相似星群用不同字母。

题解:

本题的关键在于如何判断两个星群是否相似,也就是如何分配字母的问题。题目说了相似说明两个星群形状一样,与方向无关,形状这一特征我们可以从每个星星与其他星星的距离和来表示
对于每一个星群,计算其内部距离和,然后看之前是否出现过,出现过则给之前的字母,若没出现则根据出现顺序赋予字母

代码:

代码思路肯定是对的,但是不知道哪错了

#include<bits/stdc++.h>
typedef long long ll;
using namespace std;
inline int read(){int s=0,w=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();//s=(s<<3)+(s<<1)+(ch^48);return s*w;
}
int dy[9]={-1,0,1,-1,1,-1,0,1},dx[9]={-1,-1,-1,0,0,1,1,1};
const int maxn=600;
char a[maxn][maxn];
char newa[maxn][maxn];
int w,h;
vector<pair<int,int> >c;
vector<ll>mapp;
void dfs(int x,int y)
{a[x][y]='0';c.push_back({x,y});for(int i=0;i<=7;i++){int tx=x+dx[i];int ty=y+dy[i];if(a[tx][ty]=='0'||tx>h||tx<=0||ty>w||ty<=0)continue;dfs(tx,ty);}
}
ll getsum()
{ll sum=0;for(int i=0;i<c.size();i++){for(int j=i+1;j<c.size();j++){sum+=(c[i].first-c[j].first)*(c[i].first-c[j].first)+(c[i].second-c[j].second)*(c[i].second-c[j].second);}}return sum;
}
char check(ll sum)
{for(int i=0;i<mapp.size();i++){if(mapp[i]==sum)return (char)('a'+i);}char neww='a'+mapp.size();mapp.push_back(sum);return neww;
}
void fill(char x)
{for(int i=0;i<c.size();i++){newa[c[i].first][c[i].second]=x;}
}
int main()
{memset(newa,'0',sizeof(newa));cin>>w>>h;for(int i=1;i<=h;i++){for(int j=1;j<=w;j++){cin>>a[i][j];}//char ch=getchar();}for(int i=1;i<=h;i++){for(int j=1;j<=w;j++){if(a[i][j]=='1'){dfs(i,j);ll sum=getsum();char x=check(sum);fill(x);c.clear();}}}for(int i=1;i<=h;i++){for(int j=1;j<=w;j++){printf("%c",newa[i][j]);}printf("\n");}
}

AcWing 1402. 星空之夜 1月28相关推荐

  1. 崩坏3服务器维护多久,崩坏35月28日停服维护多久?4.0版本更新内容汇总[图]

    崩坏3早已放出消息的4.0版本终于要来了,官方已经发布了更新的公告,将会在5月28日的时候停服,到时候玩家就不能登游戏了,那么本次更新的具体时间是什么时候?还有要持续多久?又有什么新的内容上线?在下面 ...

  2. 分享Silverlight/WPF/Windows Phone/HTML5一周学习导读(11月28日-12月4日)

    分享Silverlight/WPF/Windows Phone/HTML5一周学习导读(11月28日-12月4日) 本周Silverlight学习资源更新 Silverlight HttpUtil 封 ...

  3. 舰r4月28服务器维护,崩坏3 11月28日版本更新维护通知

    亲爱的舰长: 为了给舰长更好的游戏体验,休伯利安号将在11月28日进行版本更新维护,维护完成后战舰将更新为3.6版本--「绯夜霞隐」. ======维护时间====== 安卓国服.iOS服和各渠道服: ...

  4. 8月28日服务器例行维护公告,天涯明月刀8月28日更新了什么-8月28日更新内容介绍...

    <天涯明月刀>8月28日服务器例行维护公告.<天涯明月刀>8月28日更新了什么呢?小编已经整理好了<天涯明月刀>8月28日更新内容,感兴趣的玩家们就一起来看看这次的 ...

  5. 逆水寒捏脸服务器维护,《逆水寒》2019年3月28日更新公告

    各位自在同门: 为了保证服务器的运行稳定和服务质量,<逆水寒>将于2019年3月28日早8:00停机进行维护工作,预计维护到上午10:00(挑灯看剑.虎啸龙吟.一生一世合并成的超级大服预计 ...

  6. 滴滴快车奖励政策,高峰奖励,翻倍奖励,按成交率,指派单数分级(8月22日~8月28日)...

    工作日奖励政策: 活动时间:8月24日~8月28日 更新日期:8月24日 滴滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程) ...

  7. SilverlightMMORPG窝窝世界明天4月28日封测

    SilverlightMMORPG窝窝世界明天4月28日封测 作为软件巨头微软近年来所推崇的富媒体应用的解决方案,微软Silverlight(银光)以其跨平台.支持多种浏览器的互联网多媒体呈现技术,极 ...

  8. 2021年4月28日 深圳头条后台开发实习面试(hr面)

    title: 2021年4月28日 深圳头条后台开发实习面试(hr面) tags: 面经 2021年4月28日 深圳头条后台开发实习面试(hr面) 自我介绍 为什么当时高考报考了机械行业呢? 你对机械 ...

  9. 芯讯通1月28号晚上八点直播-C-V2X产业链生态思考,关注易贸智慧互联公众号免费收听...

    演讲人:严永杰 芯讯通SIMCom 汽车车载业务负责人,主要负责从事车载前装通信/V2X市场业务合作和推广,对接整车企业,Tire1 企业的业务开拓以及项目合作,同时积极参与智能网联汽车联盟C-V2X ...

最新文章

  1. PJ:细菌挥发性物质和光合信号激活低铁响应途径
  2. gearman的持久化,以mysql的方式
  3. EXCEL文件单独打开和单独关闭
  4. Ubuntu软件的安装和使用
  5. 回溯法之避免无用判断 UVA129 Krypton Factor困难的串
  6. Linux下tail命令使用
  7. 数据(数字)资产的开放现状、价值、趋势及未来
  8. 【洛谷2926/BZOJ1607】[USACO08DEC]Patting Heads拍头(筛法)
  9. 【渝粤教育】国家开放大学2018年秋季 0579-22T电路及磁路(2)(一) 参考试题
  10. centos 6.3+mysql+5.6+nginx 1.5.8
  11. ubuntu14.04中mysql的安裝及utf8编码集配置
  12. 如何快速解决或避免EDI系统磁盘空间不足?
  13. 透过散射介质的成像matlab,基于解卷积透过散射介质大视场成像恢复方法
  14. 计计算机专用英语(常用1695个单词,带音标) 欢迎评论转发
  15. 服务器的管理IIS 6.0
  16. 将MYS_SAM9X5改为dataflash启动
  17. 不仅可以邮件撤回还能误删恢复?!
  18. Hinton:胶囊网络的专利是我的了
  19. 一篇文章让你读懂 OpenStack 的起源、架构和应用
  20. 深入浅出IOC和DI---学习记录

热门文章

  1. 兵马未至,数据先行,且看如何进行数据挖掘!
  2. 我敢打赌,这世界没有python数据分析解决不了的问题
  3. python input输入多个变量_「Python 秘籍」1.2 解压可迭代对象赋值给多个变量
  4. jenkins换服务器找不到包,服务器重启后Jenkins项目部分丢失问题解决方法
  5. 河南大学计算机组成原理,河南大学计算机组成原理考点
  6. azure linux 多磁盘 lvm,EVE-NG扩展磁盘空间(扩展LVM卷)
  7. [SpringBoot2]yaml
  8. [蓝桥杯2016初赛]平方怪圈-数论,模拟
  9. [蓝桥杯2016初赛]凑算式-dfs,next_permutation
  10. java 下拉列表 枚举_「Java三分钟」精准而优雅——枚举类详解