zoukankan      html  css  js  c++  java
  • PAT 乙级 1066 图像过滤(15) C++版

    1066. 图像过滤(15)

    时间限制
    400 ms
    内存限制
    65536 kB
    代码长度限制
    8000 B
    判题程序
    Standard
    作者
    CHEN, Yue

    图像过滤是把图像中不重要的像素都染成背景色,使得重要部分被凸显出来。现给定一幅黑白图像,要求你将灰度值位于某指定区间内的所有像素颜色都用一种指定的颜色替换。

    输入格式:

    输入在第一行给出一幅图像的分辨率,即两个正整数M和N(0 < M, N <= 500),另外是待过滤的灰度值区间端点A和B(0 <= A < B <= 255)、以及指定的替换灰度值。随后M行,每行给出N个像素点的灰度值,其间以空格分隔。所有灰度值都在[0, 255]区间内。

    输出格式:

    输出按要求过滤后的图像。即输出M行,每行N个像素灰度值,每个灰度值占3位(例如黑色要显示为000),其间以一个空格分隔。行首尾不得有多余空格。

    输入样例:
    3 5 100 150 0
    3 189 254 101 119
    150 233 151 99 100
    88 123 149 0 255
    
    输出样例:
    003 189 254 000 000
    000 233 151 099 000
    088 000 000 000 255

    该题思路还是比较清晰,找到范围内的值修改就可

     1 // 1066.cpp : 定义控制台应用程序的入口点。
     2 //
     3 
     4 #include "stdafx.h"
     5 #include<iostream>
     6 #include<iomanip>
     7 
     8 using namespace std;
     9 
    10 int main()
    11 {
    12     int M, N, A, B, Num;
    13 
    14     cin >> M >> N >> A >> B >> Num;
    15 
    16     int *p = new int[M*N];
    17 
    18     for (int i = 0; i < M*N; i++)
    19     {
    20         cin >> p[i];
    21 
    22         if (p[i] >= A&&p[i] <= B)
    23             p[i] = Num;
    24     }
    25 
    26     for (int i = 0; i < M*N; i++)
    27     {
    28         cout.width(3);
    29         cout.fill('0');
    30         cout << p[i];
    31 
    32         if (0 != (i + 1) % N)
    33             cout << " ";
    34         else
    35             cout << endl;
    36     }
    37 
    38     delete[] p;
    39 
    40     return 0;
    41 }
  • 相关阅读:
    Java文件输入输出
    数位dp
    https://www.luogu.org/blog/An-Amazing-Blog/mu-bi-wu-si-fan-yan-ji-ge-ji-miao-di-dong-xi
    洛谷
    洛谷
    洛谷
    Java简单高精度合集
    洛谷
    洛谷
    洛谷
  • 原文地址:https://www.cnblogs.com/cdp1591652208/p/7136898.html
Copyright © 2011-2022 走看看