UVA1103】的更多相关文章

题目链接: https://www.luogu.org/problemnew/show/UVA1103 题目分析: 我们可以先进行矩阵的还原 for(int k=1;k<=4;k++) { a[i][++cnt]=(tmp>>(4-k))&1; } 这种使用for语句的方法在其他题解内貌似没有提及,(但其实就是把anguei的化简了一下) 这样就能复原出原始的数据(01矩阵) 然后我们可以发现每一个象形文字都有可放缩性,但空白的个数是一定的.例如虫子图案就有4个空白处. 这样我们…
题意:输入以16进制的矩阵,先转换成2进制,之后输出形成的图案. 思路:先处理掉无关图案的0,之后一个图案一个图案的遍历,识别图案的方法就是有多少个圈圈.找到一个就全部标记为-1.并且记录圆圈的数目. #include<cstdio> #include<iostream> #include<cstring> #include<algorithm> using namespace std; ][]; ][] = {{-,},{,},{,},{,-}}; ];…
题意:识别图中的象形文字.但是,图形可以任意的拉伸,但不能拉断. 分析:这种题如果图形没有特征是不可做类型的题,不过观察图形可以发现每个图形中的洞的数量是一定的,我们只需要数出每一个封闭图形的洞数就能知道这是哪个图形. 虽然知道了原理,但是并不是特别好做,首先我们需要一次dfs将所有图形旁边的点全都变为“不可访问”,然后从每个黑点开始枚举,向四周扩展,遇到白色的块就用第一次的dfs函数覆盖,否则继续第二次dfs,两次dfs交错使用,思路比较巧妙. #include <cstdio> #incl…
给出一幅黑白图像,每行相邻的四个点压缩成一个十六进制的字符.然后还有题中图示的6中古老的字符,按字母表顺序输出这些字符的标号. 输出说明:For each test case, display its case number followed by a string containing one character for eachhieroglyph recognized in the image, using the following code:Ankh: AWedjat: JDjed:…
一: 给你一个只有4和7的数字,求这是第几个幸运数字? 思路: 我们把4映射成0,7映射成1,然后就如下枚举:0,1,00,01,10,11.因为是映射的,所以可以前导0,然后我们就会知道给出的那个数字在里面的规律了,找出来就好了. 关键:映射思想 二:CF 319 DIV1 A 一种组合计数问题: 给你一个01串(因为是字符串,可以前导0),长度为n.然后给你一个编号为0到(2^n)-1的所有数字,将这些所有编号取异或然后让原数字和这个异或的数字配对成(a,b).问,有多少套这样的数,满足(a…
题目链接:https://vjudge.net/problem/UVA-1103 题目大意:每组数据包含H行W列的字符矩阵(H<=200,W<=50) 每个字符为为16进制  你需要把它转化为二进制.  转化为二进制之后 1代表黑点 0代表白点 问你出现的所有符号  并按字典序输出! 思路:首先看到这道题,完全没看懂题意 ,真的没看懂,后来搜了题解才看明白题意,但是还是不会做,这道题是在紫书上看到的,紫书上并没有给出代码,学了别人的博客! 好了  具体怎么做呢? 仔细观察可以发现,每个字符中出…
pic[][]数组存储每个点的值,0或1,输入时在原图的周围加了一圈0. color[][]数组存储每个点的color值,从1开始,dfs(row, col, c) 负责对每个点着色,连通在一起的连通块的颜色相同. 因为最先着色的是最外围的白色点,即background white,这些点的color值是1. neighbour[]数组的下标是color值,内容是一个set,存储下标color所代表的连通块周围的连通块的颜色,background white这个连通块不算. 比如 1. 测试用例…