POJ 3561 Pseudographical recognizer
【题意简述】:矩阵中除了‘.’仅仅能出现一种符号。是这些之中的一个‘‑’, ‘|’, ‘\’, or ‘/’,并且就是当除了‘.’之外还仅仅有一种符号时。这个符号还必须连成一条直线,否则就是错的,这个时候就能够输出CORRECT。否则当有两种以上符号的时候。就是错误。
还有就是当仅仅有‘.’时,也是不正确的。
【分析】:模拟过程,将整个思路想清晰。
本代码參考:http://www.cnblogs.com/gongling/archive/2012/08/05/2623676.html。
// 208K 125ms
#include<cstdio>
#include<iostream>
using namespace std;
#define MAX_LEN 101
#define is_valid(x, y) ((x)>=0 && (x)<N && (y)>=0 && (y)<M)
int N, M;
char image[MAX_LEN][MAX_LEN];
int visited[MAX_LEN][MAX_LEN];
int flag; void mark(int i, int j, int dx, int dy, char ch)
{
while(is_valid(i+dx, j+dy) && image[i+dx][j+dy]==ch)
{
visited[i+dx][j+dy] = 1;
i += dx;
j += dy;
}
} void solve()
{
int i, j;
char ch;
for(i=0; i<N; i++)
{
for(j=0; j<M; j++)
{
ch = image[i][j];
if(ch!='.' && !visited[i][j])
{
visited[i][j] = 1;
switch(ch)
{
case '-':
++flag;
mark(i, j, 0, 1, ch);
break;
case '|':
++flag;
mark(i, j, 1, 0, ch);
break;
case '\\':
++flag;
mark(i, j, 1, 1, ch);
break;
case '/':
++flag;
mark(i, j, 1, -1, ch);
break;
}
}
}
}
} int main()
{
int i, tests;
scanf("%d", &tests);
while(tests--)
{
scanf("%d %d", &N, &M);
for(i=0; i<N; i++)
scanf("%s", image[i]);
memset(visited, 0, sizeof(visited));
flag = 0;
solve();
if(flag == 1)
printf("CORRECT\n");
else
printf("INCORRECT\n");
}
}
POJ 3561 Pseudographical recognizer的更多相关文章
- 字符串专题:KMP POJ 3561
http://poj.org/problem?id=3461 KMP这里讲的不错next的求法值得借鉴 http://blog.sina.com.cn/s/blog_70bab9230101g0qv. ...
- POJ 3370. Halloween treats 抽屉原理 / 鸽巢原理
Halloween treats Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 7644 Accepted: 2798 ...
- POJ 2356. Find a multiple 抽屉原理 / 鸽巢原理
Find a multiple Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 7192 Accepted: 3138 ...
- POJ 2965. The Pilots Brothers' refrigerator 枚举or爆搜or分治
The Pilots Brothers' refrigerator Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 22286 ...
- POJ 1753. Flip Game 枚举or爆搜+位压缩,或者高斯消元法
Flip Game Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 37427 Accepted: 16288 Descr ...
- POJ 3254. Corn Fields 状态压缩DP (入门级)
Corn Fields Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 9806 Accepted: 5185 Descr ...
- POJ 2739. Sum of Consecutive Prime Numbers
Sum of Consecutive Prime Numbers Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 20050 ...
- POJ 2255. Tree Recovery
Tree Recovery Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 11939 Accepted: 7493 De ...
- POJ 2752 Seek the Name, Seek the Fame [kmp]
Seek the Name, Seek the Fame Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 17898 Ac ...
随机推荐
- luogu P1359会议
//以一号节点为根节点,求出所有节点到根结点的距离,以及所有点的子节点的个数 //然后计算根据已知信息计算所有节点到当前结点的距离 //然后扫描n个点,O(n)求解 #include<bits/ ...
- Maven与Nexus OSS
Maven 是一个项目管理和构建自动化工具,是Apache Fundation下的一个Java项目.常用于Java项目中依赖管理 下载直接去官网 安装Maven 已经编译的二进制包 直接解压到安装目录 ...
- 动态页面,登陆,注册,留言 JSP
登陆页 主要使用html表单,javascript验证注册信息 <%@ page language="java" contentType="text/html; c ...
- Spring的Aop 注解配置
1,导包 2,准备目标对象 package com.songyan.anno; public interface UserService { void save(); void delete(); v ...
- Swift中获取相册图片与保存到相册
关于这个网上目前位置记录的资料比较少,记录一下这个坑 获取相册图片 1: var iPC = UIImagePickerController() 2: iPC.sourceType = UIImage ...
- OC语言基础之NSDictionary
1.NSDictionary字典的创建 1: // key value 2: // key -==> value 3: NSDictionary *dict = [NSDictionary di ...
- Maven设置snapshot无法在远程仓库下载的问题解决
检查步骤如下: 1.检查nexus是否纳入public版本中: 2.配置中是否启用snapshots功能.以下方法两种设置都可以,任选一个即可. 一种是在项目pom.xml使用: <reposi ...
- Ubuntu 16.04屏幕阅读Screen Reader导致快捷键失灵的问题解决
开启和关闭快捷键:[Alt]+[Win]+[S] 如果关了之后开机还自动启动时,那么直接把它卸载: sudo apt-get remove gnome-orca killall orca 参考: ht ...
- MORMOT数据库连接池
MORMOT数据库连接池 MORMOT封装了一堆的PROPS控件,用于连接各种数据库. MORMOT的封装是武装到了牙齿的,这堆PROPS控件居然数据库连接池也封装好了.这就为我们省了不少事,笔者非常 ...
- mormot支持websocket
mormot支持websocket 根据定义,HTTP连接是无状态的和单向的,也就是说,客户机向服务器发送一个请求,该服务器通过一个应答回复.没有客户端的预先请求,就没有办法让服务器发送消息给客户机. ...