博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Uva 1103 古代象形文字
阅读量:6547 次
发布时间:2019-06-24

本文共 1030 字,大约阅读时间需要 3 分钟。

题目链接:

紫书P163.

1、根据16进制图转成2进制图。

每个点dfs一下,马上就把最外围的连通分量编号求出来了为1,这个不是文字里面的空白。

2、求每个文字,四周的空白有多少。——用一个set容器,当你查看这个像素为1 的点,发现四周的点的连通分量编号不同并且不是 1 ,就可以插入到 set 中,set 防止重复。然后这种像素点为 1 对应的字符就是他的 set.size();就是有多少个空。最后对字符排序。

#include 
using namespace std;char bin[256][5];const int maxh = 210;const int maxw = 210;int H,W;int pic[maxh][maxw],color[maxh][maxw];char line[maxw];const int dr[] = {-1,1,0,0};const int dc[] = {
0,0,-1,1};///转成像素点图void decode(char ch,int row,int col){ for(int i=0; i<4; i++) { pic[row][col+i] = bin[ch][i] - '0'; }}void dfs(int row,int col,int c){ color[row][col] = c; for(int i=0; i<4; i++) { int row2 = row + dr[i]; int col2 = col + dc[i]; if(row2>=0&&row2
=0&&col2
> neighbors;void check_neighbors(int row,int col){ for(int i=0; i<4; i++) { int row2 = row + dr[i]; int col2 = col + dc[i]; if(row2>=0&&row2
=0&&col2
cc; memset(color,0,sizeof(color)); for(int i=0;i
ans; for(int i=0;i

 

转载于:https://www.cnblogs.com/TreeDream/p/6044458.html

你可能感兴趣的文章
创建Pch预编译文件
查看>>
阿里云Centos配置iptables防火墙
查看>>
UML类图几种关系的总结
查看>>
PHP面试题汇总
查看>>
LeetCode (11): Container With Most Water
查看>>
【技巧】easyUI的datagrid,如何在翻页以后仍能记录被选中的行
查看>>
经过强制类型转换以后,变量a, b的值分别为( )short a = 128; byte b = (byte) a;
查看>>
ubuntu下msmtp+mutt的安装和配置
查看>>
QLabel显示图片,图片可以自适应label的大小
查看>>
BZOJ3994:[SDOI2015]约数个数和——题解
查看>>
3、EJB3.0开发第一个无会话Bean和客户端(jboss4.2.3)
查看>>
git fetch & pull详解
查看>>
boost_1.63.0编译VS2013
查看>>
jQuery 插件-(初体验一)
查看>>
PHP语言 -- Ajax 登录处理
查看>>
基于js的CC攻击实现与防御
查看>>
我的家庭私有云计划-19
查看>>
项目实践中Linux集群的总结和思考
查看>>
关于使用Android NDK编译ffmpeg
查看>>
监控MySQL主从同步是否异常并报警企业案例模拟
查看>>