【宽搜】ECNA 2015 D Rings (Codeforces GYM 100825)
题目链接:
http://codeforces.com/gym/100825
题目大意:
给你一张N*N(N<=100)的图表示一个树桩,'T'为年轮,'.'为空,求每个'T'属于哪一圈年轮,空的为'.',如果最内圈<10,每个格子用两位表示,否则用三位,不足的用'.'补足。
题目思路:
【宽搜】
初始所有点标记为INF,先将图上所有的'.'标记为0,边缘如果有'T'记为1,并把'.'和边缘所有的点加入队列,接下来一个一个上下左右扩展并更新答案,没进队的进队。最后输出。
- //
- //by coolxxx
- //#include<bits/stdc++.h>
- #include<iostream>
- #include<algorithm>
- #include<string>
- #include<iomanip>
- #include<map>
- #include<stack>
- #include<queue>
- #include<set>
- #include<bitset>
- #include<memory.h>
- #include<time.h>
- #include<stdio.h>
- #include<stdlib.h>
- #include<string.h>
- //#include<stdbool.h>
- #include<math.h>
- #define min(a,b) ((a)<(b)?(a):(b))
- #define max(a,b) ((a)>(b)?(a):(b))
- #define abs(a) ((a)>0?(a):(-(a)))
- #define lowbit(a) (a&(-a))
- #define sqr(a) ((a)*(a))
- #define swap(a,b) ((a)^=(b),(b)^=(a),(a)^=(b))
- #define mem(a,b) memset(a,b,sizeof(a))
- #define eps (1e-10)
- #define J 10000
- #define mod 1000000007
- #define MAX 0x7f7f7f7f
- #define PI 3.14159265358979323
- #pragma comment(linker,"/STACK:1024000000,1024000000")
- #define N 104
- #define M 10004
- using namespace std;
- typedef long long LL;
- double anss;
- LL aans;
- int cas,cass;
- int n,m,lll,ans;
- int q[M][];
- int a[N][N];
- bool u[N][N];
- char s[N][N];
- void spfa()
- {
- int x,y,l=,r=cas;
- while(l!=r)
- {
- x=q[l=(l+)%M][],y=q[l][];
- cass=max(cass,a[x][y]);
- u[x][y]=;
- if(x+<=n && a[x+][y]>a[x][y]+)
- {
- q[r=(r+)%M][]=x+,q[r][]=y;
- u[x+][y]=;
- a[x+][y]=a[x][y]+;
- }
- if(y+<=m && a[x][y+]>a[x][y]+)
- {
- q[r=(r+)%M][]=x,q[r][]=y+;
- u[x][y+]=;
- a[x][y+]=a[x][y]+;
- }
- if(x-> && a[x-][y]>a[x][y]+)
- {
- q[r=(r+)%M][]=x-,q[r][]=y;
- u[x-][y]=;
- a[x-][y]=a[x][y]+;
- }
- if(y-> && a[x][y-]>a[x][y]+)
- {
- q[r=(r+)%M][]=x,q[r][]=y-;
- u[x][y-]=;
- a[x][y-]=a[x][y]+;
- }
- }
- }
- int main()
- {
- #ifndef ONLINE_JUDGE
- // freopen("1.txt","r",stdin);
- // freopen("2.txt","w",stdout);
- #endif
- int i,j,k;
- int x,y,z;
- // init();
- // for(scanf("%d",&cass);cass;cass--)
- // for(scanf("%d",&cas),cass=1;cass<=cas;cass++)
- // while(~scanf("%s",s))
- while(~scanf("%d",&n))
- {
- cas=;cass=;mem(u,);mem(a,MAX);
- scanf("%d",&m);
- for(i=;i<=n;i++)
- {
- scanf("%s",s[i]+);
- for(j=;j<=m;j++)
- {
- if(s[i][j]=='.')
- {
- q[++cas][]=i,q[cas][]=j;
- a[i][j]=;
- }
- else if(i== || i==n || j== || j==m)
- {
- q[++cas][]=i,q[cas][]=j;
- a[i][j]=;
- }
- }
- }
- spfa();
- /*
- for(i=1;i<=n;i++)
- {
- for(j=1;j<=m;j++)
- printf("%d ",a[i][j]);
- puts("");
- }
- */
- if(cass<)
- {
- for(i=;i<=n;i++)
- {
- for(j=;j<=m;j++)
- {
- printf(".");
- if(a[i][j]==)printf(".");
- else printf("%d",a[i][j]);
- }
- puts("");
- }
- }
- else
- {
- for(i=;i<=n;i++)
- {
- for(j=;j<=m;j++)
- {
- printf(".");
- if(a[i][j]==)printf("..");
- else if(a[i][j]<)printf(".%d",a[i][j]);
- else printf("%d",a[i][j]);
- }
- puts("");
- }
- }
- }
- return ;
- }
- /*
- //
- //
- */
【宽搜】ECNA 2015 D Rings (Codeforces GYM 100825)的更多相关文章
- 【宽搜】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) ...
- 【最大流】ECNA 2015 F Transportation Delegation (Codeforces GYM 100825)
题目链接: http://codeforces.com/gym/100825 题目大意: N(N<=600)个点,每个点有个名字Si,R(R<=200)个生产商在R个点上,F(F<= ...
- 【模拟】ECNA 2015 I What's on the Grille? (Codeforces GYM 100825)
题目链接: http://codeforces.com/gym/100825 题目大意: 栅栏密码.给定N(N<=10),密钥为一个N*N的矩阵,'.'代表空格可以看到,'X'代表被遮挡,还有密 ...
- codeforces gym 100825 D Rings
这题果然就是个暴力题.... 看每个T的四个方向,有'.',或者在边界上就填1 不然就填四个方向上最小的那个数再加1 然而写wa了几发,有点蠢... #include <bits/stdc++. ...
- 【宽搜】BAPC2014 J Jury Jeopardy (Codeforces GYM 100526)
题目链接: http://codeforces.com/gym/100526 http://acm.hunnu.edu.cn/online/?action=problem&type=show& ...
- poj1399 hoj1037 Direct Visibility 题解 (宽搜)
http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...
- 利用深搜和宽搜两种算法解决TreeView控件加载文件的问题。
利用TreeView控件加载文件,必须遍历处所有的文件和文件夹. 深搜算法用到了递归. using System; using System.Collections.Generic; using Sy ...
- POJ1426 Find The Multiple (宽搜思想)
Find The Multiple Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 24768 Accepted: 102 ...
- Colorado Potato Beetle(CF的某道) & 鬼畜宽搜
题意: 一个人在一张大图上走,给你路径与起点,求他走出的矩形面积并.(大概这个意思自行百度标题... SOL: 与其说这是一道图论题不如说是一道生动活泼的STL-vector教学.... 离散化宽搜, ...
随机推荐
- linux系统下安装wget。
我们先安装linux系统比如centos7.1里面有的就没有wget下载工具.wget这个命令就不可以使用. 我们使用 yum -y install wget yum install perl 会出现 ...
- PHP利用超级全局变量$_GET来接收表单数据。
我们在linux上用 touch php_get.html php_get.php创建两个文件. php_get.html文件的代码如下: <!doctype html> <html ...
- jquery几个常用的demo
新建两个页面.一个叫做 ---- demo1.js------- 一个叫做 ----- demo1.html----- 代码分别如下 <!DOCTYPE html> <html l ...
- Css3渐变(Gradients)-径向渐变
CSS3径向渐变-radial-gradient()/repeating-radial-gradient() 径向渐变由它的中心定义. 创建径向渐变,至少定义两种颜色节点,呈现平稳过度的颜色.同时,你 ...
- angularjs ngTable -Custom filter template-calendar
jsp页面: <script type="text/ng-template" id="path/to/your/filters/top-Date-One.html& ...
- HTTP请求返回的NSData无法转换为NSString
最近在做的一个项目中有一个功能是有一个网页,模拟http请求获取到这个网页返回的相应的数据. 在请求完成后获取到的数据为NSData类型,按照我们通常的转换为NSString的方法: NSString ...
- jQuery 停止动画
jQuery stop() 方法用于在动画或效果完成前对它们进行停止. 停止滑动 点击这里,向上/向下滑动面板 实例 jQuery stop() 滑动演示 jQuery stop() 方法. jQue ...
- centos 6.x 安装redis
1.yum 安装 yum install redis 如果提示找不到包的话 可以yum install epel-release 先安装epel第三方库 2.源码安装 https://redis ...
- IE6解决固定定位代码
有些朋友在进行网页布局时,会遇到IE6浏览器不支持固定定位的兼容性问题,本博将详细介绍此问题的解决方法,需要了解的朋友可以参考下. ie6 垂直居中固定定位,代码如下: #center {_posit ...
- 【BZOJ2648】【kd_tree】SJY摆棋子
Description 这天,SJY显得无聊.在家自己玩.在一个棋盘上,有N个黑色棋子.他每次要么放到棋盘上一个黑色棋子,要么放上一个白色棋子,如果是白色棋子,他会找出距离这个白色棋子最近的黑色棋 ...