• POJ C程序设计进阶 编程题#6:流感传染


    编程题#6:流感传染

    来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)

    注意: 总时间限制: 1000ms 内存限制: 65536kB

    描述

    有一批易感人群住在网格状的宿舍区内,宿舍区为n*n的矩阵,每个格点为一个房间,房间里可能住人,也可能空着。在第一天,有些房间里的人得了流感,以后每天,得流感的人会使其邻居传染上流感,(已经得病的不变),空房间不会传染。请输出第m天得流感的人数。

    输入

    第一行一个数字n,n不超过100,表示有n*n的宿舍房间。

    接下来的n行,每行n个字符,’.’表示第一天该房间住着健康的人,’#’表示该房间空着,’@’表示第一天该房间住着得流感的人。

    接下来的一行是一个整数m,m不超过100.

    输出

    输出第m天,得流感的人数

    样例输入

    5 ....# .#.@. .#@.. #.... ..... 4

    样例输出

    16


    思路:每天将标记的人感染,并标记第二天将要感染的人标记


     1 #include<iostream>
     2 #include<stdio.h>
     3 using namespace std;
     4 
     5 int main()
     6 {
     7     char a[101][101];
     8     int n, m, sum = 0;
     9     cin >> n;
    10     for(int i = 0;i < n; i++)
    11     {
    12         for(int j = 0; j < n; j++)
    13         {
    14              cin >> a[i][j];
    15         }
    16     }
    17     cin >> m;
    18     for(int d = 1; d <= m; d++)
    19     {
    20         for(int i = 0; i < n; i++)
    21         {
    22              for(int j = 0; j < n;j++)
    23              {
    24                  if(a[i][j] == '!')
    25                    a[i][j] = '@'; // 将前一天标记的人感染
    26              }
    27         }
    28         for(int i = 0; i < n; i++)
    29         {
    30             for(int j = 0; j < n;j++)
    31             {
    33 // 将感染人周围的人标记
    32 if(a[i][j] == '@') 33 { 34 if(i + 1 <n && a[i + 1][j] == '.') 35 a[i + 1][j]='!'; 36 if(j - 1 >= 0 && a[i][j - 1] == '.') 37 a[i][j - 1] = '!'; 38 if(j + 1 < n && a[i][j + 1] == '.') 39 a[i][j + 1]='!'; 40 if(i - 1 >= 0 && a[i - 1][j] == '.') 41 a[i - 1][j] = '!'; 42 } 43 } 44 } 45 46 } 47 for(int i = 0; i < n; i++) 48 { 49 for(int j = 0; j < n; j++) 50 { 51 if(a[i][j] == '@') 52 sum++; 53 } 54 } 55 cout << sum << endl; 56 return 0; 57 }
  • 相关阅读:
    startx
    BIOS above 4g setting
    How to download file from google drive
    凤凰财经
    SOTA state-of-the-art model
    update gpu drivers
    /opt/nvidia/deepstream/deepstream/sources/libs/nvdsinfer_customparser/nvdsinfer_custombboxparser.cpp
    retinanet keras
    fp16 fp32 int8
    tf.gather with tf.Session() as sess:
  • 原文地址:https://www.cnblogs.com/dagon/p/4709355.html
Copyright © 2020-2023  润新知