• TyvjBegin P1031 Begin2 Unit1 扫雷


    背景 Background

    这里是TYVJ-begin2系列的第一道,欢迎您的到来。
    这个系列主要是帮助NOIP普及组的朋友在赛场上获得一个较好的成绩设计的一个配套题库
    UNIT1主要是针对一些模拟题、简单的数据结构(栈和队列)、以及简单的高精度训练
    共10道

    描述 Description

    小菜二白在用电脑的过程中突然发现Windows还有自带的游戏这下可把二白乐坏了。。可是新的问题随之而来。。就是二白不会玩儿。这不他又迷上扫雷了。来找你帮忙了。。
    二白已经知道了雷(用‘*’表示)的分布地点了,。可是他却不知道其余地方的数字代表这什么。细心的你给他解释道:“点开的数字是几,则说明该数字旁边的8个位置中有几个雷”。
    现在已知一个雷的分布图,而你的任务就是把他的数字图形计算出来。
    例:
       地雷分布  数字分布
        0*0*0   1*2*1
        00000   11211
        00000   00000
    (注意,地雷分布中,不光是以0来表示无地雷,其他数字都可以表示无地雷)
    下面的就看你了。。。

    输入格式 Input Format

    第一行 两个整数n,m分别表示行数和列数。(0<n<2000,0<m<2000)
    第二行到第N+1 行
    输入雷的排布图0表示空地。*表示雷

    输出格式 Output Format

    N行,
    雷的数字排布图。

    样例输入 Sample Input

    3 5
    0*0*0          
    00000          
    00000 

    样例输出 Sample Output

    1*2*1
    11211
    00000

    时间限制 Time Limitation

    1s

    注释 Hint

    不要想的太多!

    来源 Source

    tyvj原创

    program b1031;
    var
     n,m,i,j,s:integer;
     a:array[0..2001,0..2001]of char;
    begin
     a[0,0]:='0';
     readln (n,m);
     for i := 1 to n do
      begin
       a[0,i]:='0';
       a[i,0]:='0';
      end;
     for i := 1 to n do
      begin
       for j := 1 to m do
        read(a[i,j]);
       readln;
      end;
     for i := 1 to n do
      for j := 1 to m do
       begin
        if a[i,j] <> '*' then
         begin
          a[i,j]:='0';
          if a[i-1,j]='*' then a[i,j]:=succ(a[i,j]);
          if a[i+1,j]='*' then a[i,j]:=succ(a[i,j]);
          if a[i,j-1]='*' then a[i,j]:=succ(a[i,j]);
          if a[i,j+1]='*' then a[i,j]:=succ(a[i,j]);
          if a[i+1,j+1]='*' then a[i,j]:=succ(a[i,j]);
          if a[i-1,j+1]='*' then a[i,j]:=succ(a[i,j]);
          if a[i+1,j-1]='*' then a[i,j]:=succ(a[i,j]);
          if a[i-1,j-1]='*' then a[i,j]:=succ(a[i,j]);
         end;
       end;
     for i := 1 to n do
      begin
       for j := 1 to m-1 do write (a[i,j]);
       writeln (a[i,m]);
      end;
    end.
     

    以前一直剩一个点没AC的题,心血来潮检查一下一眼发现一开始数组少开一点点(本来是[0..2000,0..2000])就对2000的不适合了。。改过来立刻AC。。

  • 相关阅读:
    11.14 mii-tool:管理网络接口的状态
    11.15 dmidecode:查询系统硬件信息
    11.11 ntsysv:管理开机服务
    HDU 2476 String painter 刷字符串(区间DP)
    HDU 1085 Holding Bin-Laden Captive! 活捉本拉登(普通型母函数)
    母函数的应用
    HDU 1028 Ignatius and the Princess III伊格和公主III(AC代码)母函数
    HDU 1059 Dividing 分配(多重背包,母函数)
    HDU 2955 Robberies抢劫案(01背包,变形)
    HDU 1011 Starship Troopers星河战队(树形dp)
  • 原文地址:https://www.cnblogs.com/yachen/p/1945828.html
Copyright © 2020-2023  润新知