题目链接:http://lightoj.com/volume_showproblem.php?problem=1337

思路:对于搜过的区域进行标记,如果要求的点落在已经搜过的区域,那么直接取出来即可,否则,就dfs一下。

  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <iostream>
  3. #include <cstdio>
  4. #include <cstring>
  5. #include <algorithm>
  6. #include <queue>
  7. using namespace std;
  8.  
  9. const int MAXN = ( + );
  10. int n, m, Q, _count, cnt;
  11. char map[MAXN][MAXN];
  12. int mark[MAXN][MAXN];
  13. vector<int >ans;
  14. int dir[][] = { { -, }, { , }, { , - }, { , } };
  15.  
  16. void dfs(int x, int y)
  17. {
  18. mark[x][y] = _count;
  19. if (map[x][y] == 'C') cnt++;
  20. for (int i = ; i < ; i++) {
  21. int xx = x + dir[i][];
  22. int yy = y + dir[i][];
  23. if (xx >= && xx < n && yy >= && yy < m && map[xx][yy] != '#') {
  24. if (mark[xx][yy] == -)dfs(xx, yy);
  25. }
  26. }
  27. }
  28.  
  29. int main()
  30. {
  31. int _case, t = ;
  32. scanf("%d", &_case);
  33. while (_case--) {
  34. scanf("%d %d %d", &n, &m, &Q);
  35. for (int i = ; i < n; i++) {
  36. scanf("%s", map[i]);
  37. }
  38. memset(mark, -, sizeof(mark));
  39. ans.clear();
  40. _count = -;
  41. printf("Case %d:\n", t++);
  42. while (Q--) {
  43. int x, y;
  44. scanf("%d %d", &x, &y);
  45. x--, y--;
  46. if (map[x][y] == '#') {
  47. puts("");
  48. }
  49. else if (mark[x][y] == -) {
  50. _count++;
  51. cnt = ;
  52. dfs(x, y);
  53. ans.push_back(cnt);
  54. printf("%d\n", cnt);
  55. }
  56. else {
  57. printf("%d\n", ans[mark[x][y]]);
  58. }
  59. }
  60. }
  61. return ;
  62. }

loj 1337的更多相关文章

  1. 【BZOJ-1336&1337】Alie最小圆覆盖 最小圆覆盖(随机增量法)

    1336: [Balkan2002]Alien最小圆覆盖 Time Limit: 1 Sec  Memory Limit: 162 MBSec  Special JudgeSubmit: 1573   ...

  2. CSU 1337 搞笑版费马大定理(2013湖南省程序设计竞赛J题)

    题目链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1337 解题报告:虽然x和y的范围都是10^8,但是如果a 是大于1000的话,那么a^3 ...

  3. csuoj 1337: 搞笑版费马大定理

    http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1337 1337: 搞笑版费马大定理 Time Limit: 1 Sec  Memory Limit ...

  4. Codevs 1337 银行里的迷宫

    1337 银行里的迷宫 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 白银 Silver 传送门 题目描述 Description 楚楚每一次都在你的帮助下过了一关又一关(比如他开 ...

  5. CSU 1337(费马大定理)

      CSU 1337 Time Limit:1000MS     Memory Limit:131072KB     64bit IO Format:%lld & %llu   Descrip ...

  6. hdu 1337 The Drunk Jailer

    http://acm.hdu.edu.cn/showproblem.php?pid=1337 #include <cstdio> #include <cstring> #def ...

  7. [Noi2016]区间 BZOJ4653 洛谷P1712 Loj#2086

    额... 首先,看到这道题,第一想法就是二分答案+线段树... 兴高采烈的认为我一定能AC,之后发现n是500000... nlog^2=80%,亲测可过... 由于答案是求满足题意的最大长度-最小长 ...

  8. Loj #2192. 「SHOI2014」概率充电器

    Loj #2192. 「SHOI2014」概率充电器 题目描述 著名的电子产品品牌 SHOI 刚刚发布了引领世界潮流的下一代电子产品--概率充电器: 「采用全新纳米级加工技术,实现元件与导线能否通电完 ...

  9. Loj #3096. 「SNOI2019」数论

    Loj #3096. 「SNOI2019」数论 题目描述 给出正整数 \(P, Q, T\),大小为 \(n\) 的整数集 \(A\) 和大小为 \(m\) 的整数集 \(B\),请你求出: \[ \ ...

随机推荐

  1. C#之键值对

    1.初始化一个键值对 //初始化定义一个键值对,注意最后的括号 Dictionary<int, string> dic = new Dictionary<int, string> ...

  2. C# webservice 编写、发布、调用

    采用的工具VS2010生成工程 1. 生成webservice工程:建 ASP.NET 空WEB 应用程序. 2. 在建好的ASP.NET 空WEB应用程序中新建项“web 服务”. 完成上述内容工程 ...

  3. Shell数组相关操作

    参考:http://www.cnblogs.com/chengmo/archive/2010/09/30/1839632.html 创建数组 a=( ) 获得数组长度 ${#a[@]} #${#变量} ...

  4. Calendar类测试

    public static void main(String[] args) throws ParseException { // 字符串转换日期格式 // DateFormat fmtDateTim ...

  5. Unity3d《Shader篇》法线贴图

    效果图 贴图 法线贴图 //代码 Shader "Custom/NormalMap" { Properties { _MainTex ("Texture", 2 ...

  6. ios cordite 读取错误CoreData could not fulfill a fault for '0x15b4a870

    解释在这里 http://stackoverflow.com/questions/14296892/nsobjectinaccessibleexception-reason-coredata-coul ...

  7. Python处理JSON数据

    python解析json时为了方便,我们首先安装json模块,这里选择demjson,官方网址是:http://deron.meranda.us/python/demjson/ 访问之后点击页面的的D ...

  8. DB2用一张表更新其他表的数据

    表结构: CREATE TABLE ATEST  (ID    INTEGER,   NAME  VARCHAR(256),   CODE  INTEGER,   NAME2 VARCHAR(256) ...

  9. 【轮子】发现一个效果丰富酷炫的Android动画库

    没有什么比发现一个好轮子更让人开心的了. 这个库分分钟提高交互体验 :AndroidViewAnimations 一张图说明一切 配置和使用也相当简单 GitHub地址

  10. 【网络】VPN

    VPN: 来自百度百科 虚拟专用网络的功能是:在公用网络上建立专用网络,进行加密通讯.在企业网络中有广泛应用.VPN网关通过对数据包的加密和数据包目标地址的转换实现远程访问.VPN有多种分类方式,主要 ...