P2749 [USACO5.1]夜空繁星Starry Night

超大模拟

1.扫联通块(八个方向拓展)

2.去重

3.标记

4.输出

代码好短,跟猪国杀比都不能比

代码:

#include<bits/stdc++.h>
using namespace std;
const int N=105;
int n,m;
bool Map[N][N]={0};
int cnt=0;
int col[N][N]={0};
int dx[8]={0,0,1,-1,1,-1,1,-1},dy[8]={1,-1,0,0,1,-1,-1,1};
map<int,double> s;
map<int,char> p;
vector<pair<int,int> > f[N<<5];
double ans[N<<5];
int ano=0;
void dfs(int x,int y){if(x<1||x>n||y<1||y>m) return;col[x][y]=cnt;pair<int,int> a;a.first=x,a.second=y;f[cnt].push_back(a);for(int d=0;d<8;d++){int xx=x+dx[d],yy=y+dy[d];if(!col[xx][yy]&&Map[xx][yy]) dfs(xx,yy);}
}
double cal(int cc){double yuy=0;for(int i=0;i<f[cc].size();i++){for(int j=i+1;j<f[cc].size();j++){yuy=yuy+sqrt((double)(f[cc][i].first-f[cc][j].first)*(f[cc][i].first-f[cc][j].first)+(f[cc][i].second-f[cc][j].second)*(f[cc][i].second-f[cc][j].second));}}int u=-1;for(int i=1;i<cc;i++){if(yuy-ans[i]<=0.000001&&yuy-ans[i]>=-0.000001){u=i;break;    }}if(u!=-1){for(int i=0;i<f[cc].size();i++){col[f[cc][i].first][f[cc][i].second]=u;}}ans[cc]=yuy;
}
int main(){s.clear();scanf("%d%d",&n,&m);swap(n,m);for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){char c;cin>>c;if(c=='0') Map[i][j]=0;else Map[i][j]=1;}} for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){if(Map[i][j]==1&&!col[i][j]){cnt++;dfs(i,j);}}}for(int i=1;i<=cnt;i++){cal(i);}s.clear();for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){if(!Map[i][j]) printf("0");else{if(s[col[i][j]]==0){s[col[i][j]]=1;ano++;int t='a'+ano-1;p[col[i][j]]=(char)t;}printf("%c",p[col[i][j]]);}}printf("\n");}return 0;
} 

转载于:https://www.cnblogs.com/QYJ060604/p/11424205.html

P2749 [USACO5.1]夜空繁星Starry Night相关推荐

  1. [USACO5.1]夜空繁星Starry Night

    题目背景 高高的星空,簇簇闪耀的群星形态万千.一个星座(cluster)是一群连通的星组成的非空连通星系,这里的连通是指水平,垂直或者对角相邻的两个星星.一个星座不能是另一个更大星座的一部分, 星座可 ...

  2. 洛谷 P2749 [USACO5.1]【夜空繁星Starry Night】

    题目背景 高高的星空,簇簇闪耀的群星形态万千.一个星座(cluster)是一群连通的星组成的非空连通星系,这里的连通是指水平,垂直或者对角相邻的两个星星.一个星座不能是另一个更大星座的一部分, 星座可 ...

  3. 【USACO5-1-2】夜空繁星Starry Night 模拟

    题目 判断是否相似的方法是将每两点的距离加起来 #include<iostream> #include<algorithm> #include<cstdio> #i ...

  4. “我想要用我余生,换夜空繁星闪耀”

    简介:本文是7月28日<一个95后阿里郎的自学修养>文字稿,我们花了一个小时时间,从一阿里郎学生时代的成长经验,聊到了求职时期的tips,最后聊到了工作后的收获,希望与象牙塔里的你一起分享 ...

  5. P2749 夜空繁星

    USACO的搜索,不知道为什么和二维凸包扯上关系QAQ 刚看到这道题时无从下手-貌似很难呀,大概翻了一下题解-发现了一个玄学定理: 每一个点和别的点的距离相加,一样的图形总是一样的 QAQ 前方水题警 ...

  6. 简约几何艺术海报PSD分层模板,即使简单也足以控制观众的注意力。

    设计一张海报可能是一项具有挑战性的任务. 与大多数其他类型的设计不同,海报设计需要对细节的仔细关注和独特的方法来抓住用户的注意力. 难怪即使是专业设计师也经常为招贴设计而烦恼. 如果你也想为你的海报想 ...

  7. Duang,Duang,H5 +酷炫效果+干货,此时不收更待何时

    现在市面上有一大批H5页面模板制作工具,诚然,他们方便了很多非专业设计师设计制作H5页面.但是,很多模板工具上的作品大部分还停留在左飞入右飞出的初级境界,看多了真心有些腻,动效如无美感还不如看静态的. ...

  8. 工作这么多年,所经历5个骗子上司

    领导者之所以能成为领导者,一定是有过人之处的.但过人之外,领导也是个普通人. 前几天参加聚会,朋友们聊到上司,一片吐槽声.抠门.变态.不近人情.擅长甩锅,是最高频的四个词汇. 见我一直没参与讨论,旁边 ...

  9. [从头读历史] 第287节 神之物语 赫拉克勒斯的故事

    剧情提要: 继续阅读希腊神话,赫拉克勒斯的故事,也就是大力神列传. 正剧开始: 星历2016年07月07日 16:52:25, 银河系厄尔斯星球中华帝国江南行省. [工程师阿伟]正在和[机器小伟]一起 ...

最新文章

  1. fl out of focus插件_高质量插件之激励器篇
  2. hibernate实现增删改查的各种方法
  3. (1) nginx的安装
  4. 996,别让年轻人累到不觉得累
  5. 一次非常有意思的SQL优化经历:从30248.271s到0.001s
  6. C++【EasyX】俄罗斯方块
  7. html图片右上角关闭按钮,jQuery UI:datepicker – 如何在右上角添加关闭按钮(图像!)?...
  8. php txt 下载文件,PHP下载单个TXT文件
  9. java程序本质,方法学之Java的本质
  10. 华中科技大学计算机徐明,华中科技大学2011年本科特优生名单
  11. Android Studio中Spinner控件的使用方法2-2
  12. DZ60通过IIC读取LM75温度遇到问题解决方法
  13. Excel妙用-公式结果我都要
  14. mysql字符串索引与数字索引_×××数字和字符串数字的索引使用情况
  15. Feed Ratios
  16. php kibana查询,Kibana+Logstash+Elasticsearch 日志查询系统搭建
  17. LeetCode——二叉树
  18. php后缀伪静态为html,Thinkphp 3.2.3 URL路由伪静态生成遇到的问题生成带HTML后缀
  19. 解决在iTunes Connect 创建App时出现There was an error creating your Bundle ID.
  20. 电子科技大学 图论期末复习 公式快速索引

热门文章

  1. C++算法初级3——子集枚举
  2. Application of near-infrared hyperspectral imaging for variety identification of coated maize kerne
  3. matplotlib学习 -- 时令蔬菜水果农产品挖掘
  4. Python并行计算——使用gather
  5. java分布式系统是什么意思,什么是分布式系统
  6. 46.全排列 47.全排列 II
  7. .NET Compact Framework 移动开发步步来(4)
  8. 教你将python画的图片编程保存(附简单例子)
  9. 计算机毕业设计Java助农脱贫系统(源码+系统+mysql数据库+lw文档)
  10. 融合计费账务系统架构与核心功能的研究与实现