题目链接:

  http://codeforces.com/gym/100825

题目大意:

  给你一张N*N(N<=100)的图表示一个树桩,'T'为年轮,'.'为空,求每个'T'属于哪一圈年轮,空的为'.',如果最内圈<10,每个格子用两位表示,否则用三位,不足的用'.'补足。

题目思路:

  【宽搜】

  初始所有点标记为INF,先将图上所有的'.'标记为0,边缘如果有'T'记为1,并把'.'和边缘所有的点加入队列,接下来一个一个上下左右扩展并更新答案,没进队的进队。最后输出。

  1. //
  2. //by coolxxx
  3. //#include<bits/stdc++.h>
  4. #include<iostream>
  5. #include<algorithm>
  6. #include<string>
  7. #include<iomanip>
  8. #include<map>
  9. #include<stack>
  10. #include<queue>
  11. #include<set>
  12. #include<bitset>
  13. #include<memory.h>
  14. #include<time.h>
  15. #include<stdio.h>
  16. #include<stdlib.h>
  17. #include<string.h>
  18. //#include<stdbool.h>
  19. #include<math.h>
  20. #define min(a,b) ((a)<(b)?(a):(b))
  21. #define max(a,b) ((a)>(b)?(a):(b))
  22. #define abs(a) ((a)>0?(a):(-(a)))
  23. #define lowbit(a) (a&(-a))
  24. #define sqr(a) ((a)*(a))
  25. #define swap(a,b) ((a)^=(b),(b)^=(a),(a)^=(b))
  26. #define mem(a,b) memset(a,b,sizeof(a))
  27. #define eps (1e-10)
  28. #define J 10000
  29. #define mod 1000000007
  30. #define MAX 0x7f7f7f7f
  31. #define PI 3.14159265358979323
  32. #pragma comment(linker,"/STACK:1024000000,1024000000")
  33. #define N 104
  34. #define M 10004
  35. using namespace std;
  36. typedef long long LL;
  37. double anss;
  38. LL aans;
  39. int cas,cass;
  40. int n,m,lll,ans;
  41. int q[M][];
  42. int a[N][N];
  43. bool u[N][N];
  44. char s[N][N];
  45. void spfa()
  46. {
  47. int x,y,l=,r=cas;
  48. while(l!=r)
  49. {
  50. x=q[l=(l+)%M][],y=q[l][];
  51. cass=max(cass,a[x][y]);
  52. u[x][y]=;
  53. if(x+<=n && a[x+][y]>a[x][y]+)
  54. {
  55. q[r=(r+)%M][]=x+,q[r][]=y;
  56. u[x+][y]=;
  57. a[x+][y]=a[x][y]+;
  58. }
  59. if(y+<=m && a[x][y+]>a[x][y]+)
  60. {
  61. q[r=(r+)%M][]=x,q[r][]=y+;
  62. u[x][y+]=;
  63. a[x][y+]=a[x][y]+;
  64. }
  65. if(x-> && a[x-][y]>a[x][y]+)
  66. {
  67. q[r=(r+)%M][]=x-,q[r][]=y;
  68. u[x-][y]=;
  69. a[x-][y]=a[x][y]+;
  70. }
  71. if(y-> && a[x][y-]>a[x][y]+)
  72. {
  73. q[r=(r+)%M][]=x,q[r][]=y-;
  74. u[x][y-]=;
  75. a[x][y-]=a[x][y]+;
  76. }
  77. }
  78. }
  79. int main()
  80. {
  81. #ifndef ONLINE_JUDGE
  82. // freopen("1.txt","r",stdin);
  83. // freopen("2.txt","w",stdout);
  84. #endif
  85. int i,j,k;
  86. int x,y,z;
  87. // init();
  88. // for(scanf("%d",&cass);cass;cass--)
  89. // for(scanf("%d",&cas),cass=1;cass<=cas;cass++)
  90. // while(~scanf("%s",s))
  91. while(~scanf("%d",&n))
  92. {
  93. cas=;cass=;mem(u,);mem(a,MAX);
  94. scanf("%d",&m);
  95. for(i=;i<=n;i++)
  96. {
  97. scanf("%s",s[i]+);
  98. for(j=;j<=m;j++)
  99. {
  100. if(s[i][j]=='.')
  101. {
  102. q[++cas][]=i,q[cas][]=j;
  103. a[i][j]=;
  104. }
  105. else if(i== || i==n || j== || j==m)
  106. {
  107. q[++cas][]=i,q[cas][]=j;
  108. a[i][j]=;
  109. }
  110. }
  111. }
  112. spfa();
  113. /*
  114. for(i=1;i<=n;i++)
  115. {
  116. for(j=1;j<=m;j++)
  117. printf("%d ",a[i][j]);
  118. puts("");
  119. }
  120. */
  121. if(cass<)
  122. {
  123. for(i=;i<=n;i++)
  124. {
  125. for(j=;j<=m;j++)
  126. {
  127. printf(".");
  128. if(a[i][j]==)printf(".");
  129. else printf("%d",a[i][j]);
  130. }
  131. puts("");
  132. }
  133. }
  134. else
  135. {
  136. for(i=;i<=n;i++)
  137. {
  138. for(j=;j<=m;j++)
  139. {
  140. printf(".");
  141. if(a[i][j]==)printf("..");
  142. else if(a[i][j]<)printf(".%d",a[i][j]);
  143. else printf("%d",a[i][j]);
  144. }
  145. puts("");
  146. }
  147. }
  148.  
  149. }
  150. return ;
  151. }
  152. /*
  153. //
  154.  
  155. //
  156. */

【宽搜】ECNA 2015 D Rings (Codeforces GYM 100825)的更多相关文章

  1. 【宽搜】ECNA 2015 E Squawk Virus (Codeforces GYM 100825)

    题目链接: http://codeforces.com/gym/100825 题目大意: N个点M条无向边,(N<=100,M<=N(N-1)/2),起始感染源S,时间T(T<10) ...

  2. 【最大流】ECNA 2015 F Transportation Delegation (Codeforces GYM 100825)

    题目链接: http://codeforces.com/gym/100825 题目大意: N(N<=600)个点,每个点有个名字Si,R(R<=200)个生产商在R个点上,F(F<= ...

  3. 【模拟】ECNA 2015 I What's on the Grille? (Codeforces GYM 100825)

    题目链接: http://codeforces.com/gym/100825 题目大意: 栅栏密码.给定N(N<=10),密钥为一个N*N的矩阵,'.'代表空格可以看到,'X'代表被遮挡,还有密 ...

  4. codeforces gym 100825 D Rings

    这题果然就是个暴力题.... 看每个T的四个方向,有'.',或者在边界上就填1 不然就填四个方向上最小的那个数再加1 然而写wa了几发,有点蠢... #include <bits/stdc++. ...

  5. 【宽搜】BAPC2014 J Jury Jeopardy (Codeforces GYM 100526)

    题目链接: http://codeforces.com/gym/100526 http://acm.hunnu.edu.cn/online/?action=problem&type=show& ...

  6. poj1399 hoj1037 Direct Visibility 题解 (宽搜)

    http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...

  7. 利用深搜和宽搜两种算法解决TreeView控件加载文件的问题。

    利用TreeView控件加载文件,必须遍历处所有的文件和文件夹. 深搜算法用到了递归. using System; using System.Collections.Generic; using Sy ...

  8. POJ1426 Find The Multiple (宽搜思想)

    Find The Multiple Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 24768   Accepted: 102 ...

  9. Colorado Potato Beetle(CF的某道) & 鬼畜宽搜

    题意: 一个人在一张大图上走,给你路径与起点,求他走出的矩形面积并.(大概这个意思自行百度标题... SOL: 与其说这是一道图论题不如说是一道生动活泼的STL-vector教学.... 离散化宽搜, ...

随机推荐

  1. linux系统下安装wget。

    我们先安装linux系统比如centos7.1里面有的就没有wget下载工具.wget这个命令就不可以使用. 我们使用 yum -y install wget yum install perl 会出现 ...

  2. PHP利用超级全局变量$_GET来接收表单数据。

    我们在linux上用 touch php_get.html php_get.php创建两个文件. php_get.html文件的代码如下: <!doctype html> <html ...

  3. jquery几个常用的demo

    新建两个页面.一个叫做  ---- demo1.js------- 一个叫做 ----- demo1.html----- 代码分别如下 <!DOCTYPE html> <html l ...

  4. Css3渐变(Gradients)-径向渐变

    CSS3径向渐变-radial-gradient()/repeating-radial-gradient() 径向渐变由它的中心定义. 创建径向渐变,至少定义两种颜色节点,呈现平稳过度的颜色.同时,你 ...

  5. angularjs ngTable -Custom filter template-calendar

    jsp页面: <script type="text/ng-template" id="path/to/your/filters/top-Date-One.html& ...

  6. HTTP请求返回的NSData无法转换为NSString

    最近在做的一个项目中有一个功能是有一个网页,模拟http请求获取到这个网页返回的相应的数据. 在请求完成后获取到的数据为NSData类型,按照我们通常的转换为NSString的方法: NSString ...

  7. jQuery 停止动画

    jQuery stop() 方法用于在动画或效果完成前对它们进行停止. 停止滑动 点击这里,向上/向下滑动面板 实例 jQuery stop() 滑动演示 jQuery stop() 方法. jQue ...

  8. centos 6.x 安装redis

    1.yum 安装 yum install redis 如果提示找不到包的话  可以yum install epel-release   先安装epel第三方库 2.源码安装 https://redis ...

  9. IE6解决固定定位代码

    有些朋友在进行网页布局时,会遇到IE6浏览器不支持固定定位的兼容性问题,本博将详细介绍此问题的解决方法,需要了解的朋友可以参考下. ie6 垂直居中固定定位,代码如下: #center {_posit ...

  10. 【BZOJ2648】【kd_tree】SJY摆棋子

    Description   这天,SJY显得无聊.在家自己玩.在一个棋盘上,有N个黑色棋子.他每次要么放到棋盘上一个黑色棋子,要么放上一个白色棋子,如果是白色棋子,他会找出距离这个白色棋子最近的黑色棋 ...