传送门  Problem - 1600J - Codeforces

题目  

题意

给定n行m列, 求每个连通块由多少格子组成,并将格子数从大到小排序输出

对于每个格子都有一个数(0~15),将其转化为二进制(四位数),比如1010

表示北为1,不可通东为0,可通南为1,不可通西为0,可通。

即 1表示墙,不可通,四位数字依次表示为北东南西

【注意:比如样例9到14去,只需判断9东边是否可通即可,14不用管】

题解

差不多和dfs的板子一样~

AC代码

#include <iostream>
#include <algorithm> using namespace std; const int N = 1e3+10; int n, m, res[N*N], idx = -1, step;
int dx[4] = {0,1,0,-1}, dy[4] = {-1,0,1,0};//西南东北
bool book[N][N];
int a[N][N]; void dfs(int x, int y)
{
bool flag = 0;
int xx = a[x][y];
for(int i = 0; i < 4; i ++)
{
if((xx>>i)&1==1) continue; int tx = x+dx[i];
int ty = y+dy[i];
if(tx<0||tx>=n||ty<0||ty>=m) continue; if(!book[tx][ty])
{
flag = 1;
book[tx][ty] = 1;
step++;
dfs(tx, ty);
}
}
if(!flag) return; }
int main(){ idx = -1;
cin >> n >> m;
for(int i = 0; i < n; i ++)
for(int j = 0; j < m; j ++)
cin >> a[i][j]; for(int i = 0; i < n; i ++)
for(int j = 0; j < m; j ++)
if(!book[i][j])
{
step=1;
book[i][j] = 1;
dfs(i, j);
res[++idx] = step;
} sort(res, res+idx+1);
for(int i = idx; i >= 0; i --)cout << res[i]<< ' ';
puts(""); return 0;
}

总结

不是很难,但是代码改了很久,有理解题意的问题,还有板子细节部分忘了

1. 比如样例9到14去,只需判断9东边是否可通即可,14不用管

2. n和m搞反了

3. 主函数中,每次进入dfs,初始(i,j)未标记

【简单dfs】Bubble Cup 14 - Finals Online Mirror (Unrated, ICPC Rules, Teams Preferred, Div. 2), problem: (J) Robot Factory,的更多相关文章

  1. Bubble Cup 12 - Finals Online Mirror, unrated, Div. 1

    Bubble Cup 12 - Finals Online Mirror, unrated, Div. 1 C. Jumping Transformers 我会状压 DP! 用 \(dp[x][y][ ...

  2. Bubble Cup 12 - Finals [Online Mirror, unrated, Div. 1] E. Product Tuples

    题意略,题解生成函数练习题,1+(q-ai)x卷积即可,线段树优化(类似分治思想) //#pragma GCC optimize(2) //#pragma GCC optimize(3) //#pra ...

  3. Bubble Cup 13 - Finals [Online Mirror, unrated, Div. 1] K. Lonely Numbers (数学)

    题意:定义两个数\(a,b\)是朋友,如果:\(gcd(a,b)\),\(\frac{a}{gcd(a,b)}\),\(\frac{b}{gcd(a,b)}\)能构成三角形,现在给你一个正整数\(n\ ...

  4. Bubble Cup 11 - Finals [Online Mirror, Div. 1]题解 【待补】

    Bubble Cup 11 - Finals [Online Mirror, Div. 1] 一场很好玩的题啊! I. Palindrome Pairs 枚举哪种字符出现奇数次. G. AI robo ...

  5. 2019-2020 ICPC, Asia Jakarta Regional Contest (Online Mirror, ICPC Rules, Teams Preferred)

    2019-2020 ICPC, Asia Jakarta Regional Contest (Online Mirror, ICPC Rules, Teams Preferred) easy: ACE ...

  6. Codeforces Bubble Cup 8 - Finals [Online Mirror] B. Bribes lca

    题目链接: http://codeforces.com/contest/575/problem/B 题解: 把链u,v拆成u,lca(u,v)和v,lca(u,v)(v,lca(u,v)是倒过来的). ...

  7. Codeforces Bubble Cup 8 - Finals [Online Mirror]H. Bots 数学

    H. Bots Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/575/problem/H Desc ...

  8. Codeforces Bubble Cup 8 - Finals [Online Mirror] D. Tablecity 数学题

    D. Tablecity Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/575/problem/D ...

  9. Codeforces Bubble Cup 8 - Finals [Online Mirror] F. Bulbo DP

    F. Bulbo Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/575/problem/F Des ...

随机推荐

  1. Java基础——自动装箱与拆箱

    装箱:把基本数据类型转换为对应的包装类类型 //装箱Integer i=Integer.ValuesOf(100);//自动装箱integer i1=100;//能够直接赋值成功的称为自动装箱,也调用 ...

  2. collections 数据类型扩展模块

    在内置数据类型(dict.list.set.tuple)的基础上,collections模块还提供了几个额外的数据类型:Counter.deque.defaultdict.namedtuple和Ord ...

  3. Prometheusbu部署使用-1

    Prometheus+grafana部署使用 主机列表: 192.168.161.130 : Prometheus 192.168.161.128 : node-1 192.168.161.129 : ...

  4. python3 使用mongo数据库

    0让服务器端开启服务 sudo mongod --port 27017 --dbpath /data/db --logpath /data/log --logappend --fork --auth ...

  5. Vue指令02——v-on指令和v-show的使用

    Vue指令02--v-on指令和v-show的使用 v-on指令 格式1:v-on:事件="方法" 格式2:@事件="方法" 格式3:@事件="方法( ...

  6. Jinkins流水线脚本使用curl命令调用服务接口,并且使用url传参。

    curl http://xxx.xx.xx.xx:xxxx/jenkins/publish?fileName=${fileName}&tag_name=${tag_name} 如图调用不符合c ...

  7. 分享一波dubbo mybatis plus百度云链接

    https://pan.baidu.com/s/1VtfoVJwan-XPvmQfBIKMhA

  8. Contos 安装nodeJs环境

    1.去nodeJs官网选择版本: https://nodejs.org/en/download/ 选择64位,右键复制链接地址 https://nodejs.org/dist/v8.12.0/node ...

  9. 前端webpack workflow(二)——Webpack基本使用

    作者:Jogis原文链接:https://github.com/yesvods/Blog/issues/3转载请注明原文链接以及作者信息 前一篇文章介绍了webpack以及安装方法,这次将会介绍web ...

  10. web项目中视频的上传和展示

    思路: 上传:<form>表单提交视频-->后台使用字节流保存到本地. 展示:<video>标签展示: src属性发送请求 --> 使用字节流将视频绑定到响应并返回 ...