UVa 1103 (利用连通块来判断字符) Ancient Messages 本题就是灵活运用DFS来求连通块来求解的。 题意: 给出一幅黑白图像,每行相邻的四个点压缩成一个十六进制的字符。然后还有题中图示的6中古老的字符,按字母表顺序输出这些字符的标号。 分析: 首先图像是被压缩过的,所以我们要把它解码成一个01矩阵。而且我们...
"r", stdin);51//freopen("uva1103_out.txt", "w", stdout);52intkase =0;53charc;5455while(cin >> H >> W &&H){56memset(pix,0,sizeof(pix));//之前这里
先把每行每个字符转化成二进制后存在tab数组里,之后dfs 为了区别文字内的白块与文字外的白块,需要先将矩阵加一个外围,即从tab[1]开始,且每行从tab[i][1]存储;先DFS1将文字外的0全都赋值为‘*’,再DFS2每个图形里面有几个连通块。 总结 还是不会dfs,看的别人的题解写出来的,改动也不是多大。 目前所总结...
先用dfs确定轮廓之后。 再从每个白点出发dfs,遇到的黑点且没有到达过边界,那么它就是所遇到的黑点里面的“洞”; 计算每个轮廓有多少个"洞"就好 【代码】 #include <bits/stdc++.h> using namespace std; const int N = 200; const int dx[5] = {0,0,0,1,-1}; const int dy[5] = {0,1,-1,...
题目链接:https://vjudge.net/problem/UVA-1103 题目大意:每组数据包含H行W列的字符矩阵(H<=200,W<=50) 每个字符为为16进制 你需要把它转化为二进制。 转化为二进制之后 1代表黑点 0代表白点 问你出现的所有符号 并按字典序输出! 思路:首先看到这道题,完全没看懂题意 ,真的没看懂,后来搜了题解才看明白...
UVA1103 古代象形符号 Ancient Messages 题解 题目链接: https://www.luogu.org/problemnew/show/UVA1103 题目分析: 我们可以先进行矩阵的还原 这种使用for语句的方法在其他题解内貌似没有提及,( 但其实就是把anguei的化简了一下) 这样就能复原出原始的数据(01矩阵) 然后我们可以发现每一个象形文字都有可放缩...
UVA-1103 古代象形符号 题解答案代码 算法竞赛入门经典第二版,这时候,再看那几个字符,发现每个字符都是一个连通块,而且不同字符中间包含的空白块
题目链接:uva 696 - How Many Knights 题目大意:给出一个n * m的网格,计算最多可以放置几个国际象棋中的骑士。 解题思路:分成三类来讨论: 1)min(n, m) == 1, 也就是无论怎么摆也不会影响到其他的骑士。 2)min(n, m) == 2, 这是将网格将网格分成2*4的若干部分,每个部分的前半部分放置骑士,主...
题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1980 题意:建一栋楼,负数代表一种颜色,正数代表另一种颜色,要正负号交替且绝对值递增。 两种解法: 第一种就是简单排下序,然后贪心的思想不断找绝对值最小的就可以了,注意的就是先取正值和先取...
央视网消息:北京时间11月2日晚间22:00,意甲联赛第11轮,罗马主场迎战那不勒斯。上半场比赛扎尼奥洛爆射率先破门,科拉罗夫主罚的点球被梅雷特扑出,斯莫林救险,米利克和杰林斯基先后中框。下半场比赛鲁伊手球送点,韦勒图点射进球,小克鲁伊维特远射中柱,米利克扳回一城,哲科进球被吹,补时阶段切廷两黄变一红被罚离场。最终全...