题意:输入很多字符的16进制数,现在需要你先转化为2进制,之后二进制中1和0组成的字符需要你求出来。

思路:字符每一个都有所不同可以靠圆圈的数目求出。

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring> using namespace std; int gragh[][];
int n,m;
int ans;
int dir[][] = {{-,},{,},{,},{,-}}; void change(char c,int x,int y)
{
if(c >= '' && c <= ''){
int d = c - '';
gragh[x][(y-)*+] = d%;d /= ;
gragh[x][(y-)*+] = d%;d /= ;
gragh[x][(y-)*+] = d%;d /= ;
gragh[x][(y-)*+] = d%;
}
else {
int d = c - 'a' + ;
gragh[x][(y-)*+] = d%;d /= ;
gragh[x][(y-)*+] = d%;d /= ;
gragh[x][(y-)*+] = d%;d /= ;
gragh[x][(y-)*+] = d%;
}
} void dfs1(int x,int y) //作用是把1.没用的0清掉 2.没遇到一种情况就把0清掉
{
gragh[x][y] = -;
for(int i = ;i < ; i++){
int xx = x + dir[i][];
int yy = y + dir[i][];
if(xx >= && xx <= n && yy >= && yy <= m && gragh[xx][yy] == ){
dfs1(xx,yy);
}
}
} void dfs2(int x,int y)
{
gragh[x][y] = -;
for(int i = ;i < ; i++){
int xx = x + dir[i][];
int yy = y + dir[i][];
if(xx >= && xx <= n && yy >= && yy <= m && gragh[xx][yy] == ){
ans++; //记录每一种字符的圈数
dfs1(xx,yy);
}
else if(xx >= && xx <= n && yy >= && yy <= m && gragh[xx][yy] == ){
dfs2(xx,yy);
}
}
} int main()
{
// freopen("in.txt","r",stdin);
int ncase = ;
while(scanf("%d%d",&n,&m) != EOF){
if(n == && m == )
break; memset(gragh,,sizeof(gragh)); char a[];
for(int i = ;i <= n; i++){
scanf("%s",a+);
for(int j = m;j >= ; j--){
change(a[j],i,j); //分别是十六进制的数,第几行,第几列
}
} m *= ;
for(int i = ;i <= n; i++){
if(gragh[i][] == ){
dfs1(i,);
}
if(gragh[i][m] == ){
dfs1(i,m);
}
}
for(int j = ;j <= m; j++){
if(gragh[][j] == ){
dfs1(,j);
}
if(gragh[n][j] == ){
dfs1(n,j);
}
}
int pos = ;
char s[];
for(int i = ;i <= n; i++){
for(int j = ;j <= m; j++){
ans = ;
if(gragh[i][j] == ){
dfs2(i,j);
if(ans == )
s[pos++] = 'A';
else if(ans == )
s[pos++] = 'J';
else if(ans == )
s[pos++] = 'D';
else if(ans == )
s[pos++] = 'S';
else if(ans == )
s[pos++] = 'W';
else if(ans == )
s[pos++] = 'K';
}
}
}
sort(s,s+pos);
printf("Case %d: ",ncase++);
for(int i = ;i < pos; i++)
printf("%c",s[i]);
printf("\n");
}
return ;
}

UVA1003(dfs+进制转换)的更多相关文章

  1. Luogu4363 [九省联考2018]一双木棋chess 【状压DP】【进制转换】

    题目分析: 首先跑个暴力,求一下有多少种状态,发现只有18xxxx种,然后每个状态有10的转移,所以复杂度大约是200w,然后利用进制转换的技巧求一下每个状态的十进制码就行了. 代码: #includ ...

  2. SQL Server 进制转换函数

    一.背景 前段时间群里的朋友问了一个问题:“在查询时增加一个递增序列,如:0x00000001,即每一个都是36进位(0—9,A--Z),0x0000000Z后面将是0x00000010,生成一个像下 ...

  3. [No000071]C# 进制转换(二进制、十六进制、十进制互转)

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  4. JS中的进制转换以及作用

    js的进制转换, 分为2进制,8进制,10进制,16进制之间的相互转换, 我们直接利用 对象.toString()即可实现: //10进制转为16进制 ().toString() // =>&q ...

  5. 结合stack数据结构,实现不同进制转换的算法

    #!/usr/bin/env python # -*- coding: utf-8 -*- # learn <<Problem Solving with Algorithms and Da ...

  6. 进制转换( C++字符数组 )

    注: 较为简便的方法是用 整型(int)或浮点型(long.double 注意:该类型不一定能够准确存储数据) 来存放待转换的数值,可直接取余得到每一位数值 较为稳定的方法是用 字符数组储存待转换的数 ...

  7. JS 进制转换

    十进制转换成其他进制 objectname.toString([radix])   objectname 必选项.要得到字符串表示的对象. radix 可选项.指定将数字值转换为字符串时的进制. 例如 ...

  8. php的进制转换

    学习了php的进制转换,有很多的知识点,逻辑,也有最原始的笔算,但是我们还是习惯使用代码来实现进制的转换,进制的转换代码有如下:二进制(bin)八进制( oct)十进制( dec)十六进制( hex) ...

  9. C++ 中数串互转、进制转换的类

    /******************************************************************** created: 2014/03/16 22:56 file ...

随机推荐

  1. windows7 64位系统pl/sql 客户端的安装

    解压将下载到的将其解压,如我解压到了 E:\app\instantclient_11_2 3.设置PLSQL Developer在tools-prefrences,conncetion,OCI lib ...

  2. opencv+vs2010

    当程序的输出是系统而不是vs2010时 可以使用Ctrl+F5运行 或者使用命令行模式     打开cmd.exe窗口 输入自己工程(项目)所在的盘,比如我放在E盘的,我就输入E:,按回车 输入cd, ...

  3. 【zz】matlab 均值方差

    转自:http://blog.sina.com.cn/s/blog_4936c31d01011v8j.html 1. 均值 Matlab函数:mean >>X=[1,2,3] >&g ...

  4. .net core 学习笔记(1)-分页控件的使用

    最近有个小项目,用.net core开发练练手,碰到的第一个问题就是分页控件的问题,自己写太费时间,上网查了下,发现有人已经封装好了的,就拿过来用了,分页控件github:https://github ...

  5. think in java学习笔记

    java作用域关键字: public:任何人均可使用 private:除您自己.类型的创建者以及那个类型的内部函数成员,其他任何人都不能访问 protected:只有继承的类可以访问 friendly ...

  6. HTML5的form表单属性

    form:HTML4中,表单内的从属元素必须书写在<form></form>之内,但是在HTML5中,表单的从属元素可以处于页面的任何位置,然后为其添加form属性,属性值为f ...

  7. 当想mysql某插入有某字段设置了unique且和之前相同时,会报错,并停止运行

  8. Reverse-Daily(5)-RE_100

    比较简单的一道题目,主要注意方法一 链接:http://pan.baidu.com/s/1c1U8a4K 密码:cnkq 我用了两种方法 方法一: nop掉几处无关的call指令,然后直接运行程序,但 ...

  9. D3的参考样例

    官网进去就可以看到很多样例了.但是最喜欢的是mbostock的http://bl.ocks.org 然后其它的也有一些: 看上去很酷--http://www.visualcinnamon.com/po ...

  10. SQLAutoCode - error when attempting to generate schema

    I'm trying to auto generate a schema for use in SQLalchemy, I'm using sqlautocode to do this, I use ...