zoukankan      html  css  js  c++  java
  • nyoj--92--图像有用区域(模拟)

    图像有用区域

    时间限制:3000 ms  |  内存限制:65535 KB
    难度:4
    描述

    “ACKing”同学以前做一个图像处理的项目时,遇到了一个问题,他需要摘取出图片中某个黑色线圏成的区域以内的图片,现在请你来帮助他完成第一步,把黑色线圏外的区域全部变为黑色。

         

                    图1                                                        图2 

    已知黑线各处不会出现交叉(如图2),并且,除了黑线上的点外,图像中没有纯黑色(即像素为0的点)。

    输入
    第一行输入测试数据的组数N(0<N<=6)
    每组测试数据的第一行是两个个整数W,H分表表示图片的宽度和高度(3<=W<=1440,3<=H<=960)
    随后的H行,每行有W个正整数,表示该点的像素值。(像素值都在0到255之间,0表示黑色,255表示白色)
    输出
    以矩阵形式输出把黑色框之外的区域变黑之后的图像中各点的像素值。
    样例输入
    1
    5 5
    100 253 214 146 120
    123 0 0 0 0
    54 0 33 47 0
    255 0 0 78 0
    14 11 0 0 0
    
    样例输出
    0 0 0 0 0
    0 0 0 0 0
    0 0 33 47 0
    0 0 0 78 0
    0 0 0 0 0
    来源
    [张云聪]原创
    上传者

    张云聪



    #include<stdio.h>
    #include<string.h>
    #include<algorithm>
    using namespace std;
    int map[1450][1450];
    int h,w;
    void dfs()
    {
    	for(int i=1;i<=h;i++)
    	for(int j=1;j<=w;j++)
    	if(map[i][j]!=0) map[i][j]=-1;
    	else break;
    	for(int i=1;i<=h;i++)
    	for(int j=w;j>=0;j--)
    	if(map[i][j]!=0) map[i][j]=-1;
    	else break;
    	for(int i=1;i<=w;i++)
    	for(int j=1;j<=h;j++)
    	if(map[j][i]!=0) map[j][i]=-1;
    	else break;
    	for(int i=1;i<=w;i++)
    	for(int j=h;j>=0;j--)
    	if(map[j][i]!=0) map[j][i]=-1;
    	else break;
    }
    int main()
    {
    	int t;
    	scanf("%d",&t);
    	while(t--)
    	{
    		scanf("%d%d",&w,&h);
    		for(int i=1;i<=h;i++)
    		for(int j=1;j<=w;j++)
    		scanf("%d",&map[i][j]);
    		dfs();
    		for(int i=1;i<=h;i++)
    		{
    			for(int j=1;j<w;j++)
    			if(map[i][j]==-1)
    			printf("0 ");
    			else
    			printf("%d ",map[i][j]);
    			if(map[i][w]==-1)
    			printf("0
    ");
    			else
    			printf("%d
    ",map[i][w]);
    		}
    	}
    	return 0;
    }



  • 相关阅读:
    Java异常处理和设计
    一次qps测试实践
    Alternate Task UVA
    Just Another Problem UVA
    Lattice Point or Not UVA
    Play with Floor and Ceil UVA
    Exploring Pyramids UVALive
    Cheerleaders UVA
    Triangle Counting UVA
    Square Numbers UVA
  • 原文地址:https://www.cnblogs.com/playboy307/p/5273475.html
Copyright © 2011-2022 走看看