zoukankan      html  css  js  c++  java
  • Codeforces Round #551 (Div. 2)

    传送门

    B. Serval and Toy Bricks

    题意:

      有一些规格相同的方块摆放在 n×m 的矩阵 h 中,h[i][j]代表第 (i,j) 个矩阵摆放的方块的高度;

      现给你三个视图:

      正视图:给出 m 个数据,第 i 个数据 f[ i ] 代表第 i 列方块的最大高度;

      左视图:给出 n 个数据,第 i 个数据 l[ i ] 代表第 i 行方块的最大高度;

      俯视图:给出 n×m 个数据,只有两个取值,第(i,j)个数据 top[ i ][ j ] 为0代表第(i,j)处无方块,为1代表有方块;

    我的思路:

      定义变量 a[ i ][ j ] 表示第 (i,j) 处摆放的方块的高度;

      初始,根据正视图将 a[ i ][ j ] 填充满,就是假设每一列的高度全为f[ j ];

      再根据左视图的值 l[ i ],将 a[][] 中第 i 行值 > l[i] 的赋为 l[ i ];

      最后,根据 top[ i ][ j ]输出;

    AC代码:

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 #define INF 0x3f3f3f3f
     4 #define ll long long
     5 const int maxn=200;
     6 
     7 int n,m,h;
     8 int a[maxn][maxn];
     9 
    10 int main()
    11 {
    12 //    freopen("C:\Users\hyacinthLJP\Desktop\in&&out\contest","r",stdin);
    13     scanf("%d%d%d",&n,&m,&h);
    14     for(int i=1;i <= m;++i)
    15     {
    16         int f;
    17         scanf("%d",&f);
    18         for(int j=1;j <= n;++j)
    19             a[j][i]=f;//将f填充进a[j][i]中
    20     }
    21     for(int i=1;i <= n;++i)
    22     {
    23         int l;
    24         scanf("%d",&l);
    25         for(int j=1;j <= m;++j)
    26             a[i][j]=min(a[i][j],l);//修改a[i][j] > l的区域
    27     }
    28     for(int i=1;i <= n;++i)
    29         for(int j=1;j <= m;++j)
    30         {
    31             int top;
    32             scanf("%d",&top);
    33             printf("%d%c",top ? a[i][j]:0,j == m ? '
    ':' ');//输出
    34         }
    35 
    36     return 0;
    37 }
    View Code

  • 相关阅读:
    jcaptcha验证码使用(二)
    jcaptcha验证码使用(一)
    CentOS7 常用命令集合
    VM虚拟机下安装Centos7.0图文教程
    CentOS 6.5远程连接工具x shell
    Mogodb 存储DateTime问题
    RabbitMQ安装教程
    Redis 安装
    Linux平台安装MongoDB
    Windows 平台安装 MongoDB
  • 原文地址:https://www.cnblogs.com/violet-acmer/p/10772222.html
Copyright © 2011-2022 走看看