传送门

题目的输出的4个信息

前两个很容易,dfs,bfs都可以,图怎么建都可以

后两个在搜索的时候记录belong[i][j]和已有的size即可

代码应该比不少题解清晰吧

 #include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define rep(i, a, b) for (int i = a; i <= b; ++i) const int N = ; int m, n, a[N][N], bel[N][N], siz[N * N], cnt, mx; int b[N][N][], dir[][] = {{, -}, {-, }, {, }, {, }}; bool vis[N][N]; void dfs(int x, int y) {
if (!vis[x][y] && x > && x <= m && y > && y <= n) {
siz[cnt]++;
vis[x][y] = ;
bel[x][y] = cnt;
rep(i, , ) if (!b[x][y][i]) {
dfs(x + dir[i][], y + dir[i][]);
}
}
} int main() {
scanf("%d%d", &n, &m); rep(i, , m) rep(j, , n) {
scanf("%d", &a[i][j]);
int t = a[i][j];
b[i][j][] = (t % > ); t -= t % ;
b[i][j][] = (t % > ); t -= t % ;
b[i][j][] = (t % > ); t -= t % ;
b[i][j][] = (t % > );
} rep(i, , m) rep(j, , n) if (!vis[i][j]) {
++cnt;
dfs(i, j);
mx = max(mx, siz[cnt]);
} printf("%d\n%d\n", cnt, mx); int dx, dy; char ch;
rep(j, , n) for(int i = m; i >= ; --i) rep(k, , ) {
if (bel[i][j] != bel[i + dir[k][]][j + dir[k][]]) {
if (siz[bel[i][j]] + siz[bel[i + dir[k][]][j + dir[k][]]] > mx) {
mx = siz[bel[i][j]] + siz[bel[i + dir[k][]][j + dir[k][]]];
if (k == ) dx = i + dir[k][], dy = j + dir[k][], ch = 'E';
else if (k == ) dx = i, dy = j, ch = 'N';
else if (k == ) dx = i, dy = j, ch = 'E';
else dx = i + dir[k][], dy = j + dir[k][], ch = 'N';
}
}
}
printf("%d\n%d %d %c\n", mx, dx, dy, ch);
return ;
}

最新文章

  1. C# random helper class
  2. dom4j的quickstart
  3. spring随手笔记4:ref的属性
  4. 直接解压msi文件
  5. android: 将程序运行到手机上
  6. [原创]java WEB学习笔记78:Hibernate学习之路---session概述,session缓存(hibernate 一级缓存),数据库的隔离级别,在 MySql 中设置隔离级别,在 Hibernate 中设置隔离级别
  7. 纯css3鼠标经过图片显示描述特效
  8. MyPanel与QWidget使用QStyle设置背景色的不同
  9. 使用 NPC,NPCManager 在 XNA 中创建 NPC
  10. Gridview AutoGenerateColumns属性
  11. spring security oauth2 client_credentials模
  12. Linux下基础查看命令
  13. vim编辑器中没有高亮显示,退格键不能使用的问题
  14. selenium中遇到div弹框,一起引申到其他弹框
  15. 转: HTML5之placeholder属性以及如何更改placeholder属性中文字颜色
  16. JS图形化插件利器组件系列 —— Gojs组件
  17. android studio一直卡在Gradle:Executing tasks
  18. 博客迁址 xpeng.scorpionstudio.com
  19. wrap装饰器包
  20. Keepalived 实现双机热备

热门文章

  1. Cisco packet tracer6.0下的网络工程实训
  2. C++ 洛谷P1230 智力大冲浪
  3. Vue快速学习_第二节
  4. 在?MySQL事务隔离级别了解一下?
  5. Adobe全系软件下载安装工具 CCMaker 1.3.6
  6. 关于String重写的hashcode的代码分析
  7. spring的jar包的下载、说明
  8. web安全测试必须注意的五个方面
  9. linux 安装命令 nginx 部署
  10. 找到linux中当前java的安装位置