zoukankan      html  css  js  c++  java
  • ZOJ 2857 Image Transformation (简单题)

    Image Transformation


    Time Limit: 2 Seconds Memory Limit: 65536 KB


    The image stored on a computer can be represented as a matrix of pixels. In the RGB (Red-Green-Blue) color system, a pixel can be described as a triplex integer numbers. That is, the color of a pixel is in the format "r g b" where r, g and b are integers ranging from 0 to 255(inclusive) which represent the Red, Green and Blue level of that pixel.

    Sometimes however, we may need a gray picture instead of a colorful one. One of the simplest way to transform a RGB picture into gray: for each pixel, we set the Red, Green and Blue level to a same value which is usually the average of the Red, Green and Blue level of that pixel (that is (r + g + b)/3, here we assume that the sum of r, g and b is always dividable by 3).

    You decide to write a program to test the effectiveness of this method.

    Input

    The input contains multiple test cases!

    Each test case begins with two integer numbers N and M (1 <= N, M <= 100) meaning the height and width of the picture, then three N * M matrices follow; respectively represent the Red, Green and Blue level of each pixel.

    A line with N = 0 and M = 0 signals the end of the input, which should not be proceed.

    Output

    For each test case, output "Case #:" first. "#" is the number of the case, which starts from 1. Then output a matrix of N * M integers which describe the gray levels of the pixels in the resultant grayed picture. There should be N lines with M integers separated by a comma.

    Sample Input

    2 2
    1 4
    6 9
    2 5
    7 10
    3 6
    8 11
    2 3
    0 1 2
    3 4 2
    0 1 2
    3 4 3
    0 1 2
    3 4 4
    0 0

    Sample Output

    Case 1:
    2,5
    7,10
    Case 2:
    0,1,2
    3,4,3


    Author: ZHOU, Yuan
    Source: Zhejiang Provincial Programming Contest 2007

    解题报告:这道题就是给出三个N*M的矩阵,再求平均数即可,简单题,

    代码如下:

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    using namespace std;
    const int MAX = 105;
    int a[MAX][MAX], b[MAX][MAX], c[MAX][MAX];
    int ans[MAX][MAX];
    int main()
    {
    int n, m, i, j, count = 1;
    while (scanf("%d%d", &n, &m) != EOF)
    {
    if (n == 0 || m == 0)
    {
    break;
    }
    memset(ans, 0, sizeof(ans));
    for (i = 1; i <= n; ++i)
    {
    for (j = 1; j <= m; ++j)
    {
    scanf("%d", &a[i][j]);
    }
    }
    for (i = 1; i <= n; ++i)
    {
    for (j = 1; j <= m; ++j)
    {
    scanf("%d", &b[i][j]);
    }
    }
    for (i = 1; i <= n; ++i)
    {
    for (j = 1; j <= m; ++j)
    {
    scanf("%d", &c[i][j]);
    }
    }
    for (i = 1; i <= n; ++i)//求平均数
    {
    for (j = 1; j <= m; ++j)
    {
    ans[i][j] = (a[i][j] + b[i][j] + c[i][j]) / 3;
    }
    }
    printf("Case %d:\n", count);
    for (i = 1; i <= n; ++i)
    {
    for (j = 1; j < m; ++j)
    {
    printf("%d,", ans[i][j]);
    }
    printf("%d\n", ans[i][m]);
    }
    count ++;
    }
    return 0;
    }



  • 相关阅读:
    Access restriction on class due to restriction on required library rt.jar?
    Why “no projects found to import”?
    MySQL
    您对无法重新创建的表进行了更改或者启用了“阻止保存要求重新创建表的更改”选项
    INTJINTJ——内向+直觉+思维+判
    豆瓣网案例分析报告
    如何使用Git
    如何在不到六个月的时间内成为一个开发者
    关于网站编程Alex
    string
  • 原文地址:https://www.cnblogs.com/lidaojian/p/2428969.html
Copyright © 2011-2022 走看看