oj---poj2713:肿瘤面积

#include<cstdio>
int map[1005][1005];

int main(){
    int n;
    scanf("%d",&n);
    int stflag=0,edflag=0;
    int sti,stj,edi,edj=0;
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++){
            scanf("%d",&map[i][j]);
            if(map[i][j]==0&&!stflag){
                stflag=1;
                sti=i;
                stj=j;
            }
            /*
            if(j>=1&&map[i][j-1]==0&&map[i][j]==255&&stflag){  //?ò??′óoóíù?°é¨?è£??òμ??áê?μ?óò????
                edi=i;
                edj=j-1;
                //printf("%d %d\n",edi,edj);
            }*/

        }
    }
    for(int i=n-1;i>=0;i--){
        for(int j=n-1;j>=0;j--){
            if(map[i][j]==0){
                edi=i;
                edj=j;
                edflag=1;
                break;
            }
        }
        if(edflag) break;
    }
    int cnt=0;
    //printf("%d %d %d %d",sti,stj,edi,edj);
    for(int i=sti;i<=edi;i++){
        for(int j=stj;j<=edj;j++){
            if(map[i][j]==255)
                cnt++;
        }
    }
    printf("%d\n",cnt);
    return 0;
}

判断边界不好用。可以从后往前扫描。

当然,一行一行扫0之间的255更好。

不用数组也可以。

时间: 2024-11-23 12:12:30

oj---poj2713:肿瘤面积的相关文章

原POJ 2713 肿瘤面积

描述 在一个正方形的灰度图片上,肿瘤是一块矩形的区域,肿瘤的边缘所在的像素点在图片中用0表示.其它肿瘤内和肿瘤外的点都用255表示.现在要求你编写一个程序,计算肿瘤内部的像素点的个数(不包括肿瘤边缘上的点).已知肿瘤的边缘平行于图像的边缘. 输入 只有一个测试样例.第一行有一个整数n,表示正方形图像的边长.其后n行每行有n个整数,取值为0或255.整数之间用一个空格隔开.已知n不大于1000. 输出 输出一行,该行包含一个整数,为要求的肿瘤内的像素点的个数. 样例输入 5 255 255 255

九度OJ 1497:面积最大的全1子矩阵(DP)

题目1497:面积最大的全1子矩阵 时间限制:1 秒 内存限制:128 兆 特殊判题:否 提交:850 解决:178 题目描述: 在一个M * N的矩阵中,所有的元素只有0和1,从这个矩阵中找出一个面积最大的全1子矩阵,所谓最大是指元素1的个数最多. 输入: 输入可能包含多个测试样例. 对于每个测试案例,输入的第一行是两个整数m.n(1<=m.n<=1000):代表将要输入的矩阵的大小. 矩阵共有m行,每行有n个整数,分别是0或1,相邻两数之间严格用一个空格隔开. 输出: 对应每个测试案例,输

百练2713:肿瘤面积

总时间限制:  1000ms 内存限制:  65536kB 描述 在一个正方形的灰度图片上,肿瘤是一块矩形的区域,肿瘤的边缘所在的像素点在图片中用0表示.其它肿瘤内和肿瘤外的点都用255表示.现在要求你编写一个程序,计算肿瘤内部的像素点的个数(不包括肿瘤边缘上的点).已知肿瘤的边缘平行于图像的边缘. 输入 只有一个测试样例.第一行有一个整数n,表示正方形图像的边长.其后n行每行有n个整数,取值为0或255.整数之间用一个空格隔开.已知n不大于1000. 输出 输出一行,该行包含一个整数,为要求的

noi题库(noi.openjudge.cn) 1.8编程基础之多维数组T11——T20

T11 图像旋转 描述 输入一个n行m列的黑白图像,将它顺时针旋转90度后输出. 输入 第一行包含两个整数n和m,表示图像包含像素点的行数和列数.1 <= n <= 100,1 <= m <= 100.接下来n行,每行m个整数,表示图像的每个像素点灰度.相邻两个整数之间用单个空格隔开,每个元素均在0~255之间. 输出 m行,每行n个整数,为顺时针旋转90度后的图像.相邻两个整数之间用单个空格隔开. 样例输入 3 3 1 2 3 4 5 6 7 8 9 样例输出 7 4 1 8 5

整理小朋友在noi.openjudge上的作业(1)

NOI(题库正在建设中,做题纪录有可能会被删除,请注意) 第一章的统计放前面 1 编程基础之输入输出 10 0 0% 最基础有空补刷 2 编程基础之变量定义.赋值及转换 10 0 0% 最基础有空补刷 3 编程基础之算术表达式与顺序执行 20 0 0% 最基础有空补刷 4 编程基础之逻辑表达式与条件分支 21 0 0% 最基础有空补刷 5 编程基础之循环控制 45 10 22% 最基础有空补刷 6 编程基础之一维数组 15 5 33% 最基础有空补刷 7 编程基础之字符串 35 0 0% 有必要

机器学习概要

机器学习主要分两种,一种是监督学习,一种是无监督学习. 一.监督学习 监督学习(supervised learning)是一种已知样本类别的学习方式. 监督学习有两种情况. 一种是回归.对于连续量来说,通过样本确定其回归的模型,求得代价最小的回归方程,来预测新的数据,这种方式称为回归. 如:房屋成交价格的预测. 另一种是分类.对于离散量来说,通过已知样本类别的分析,来预测未知数据的类别,这种方式称为分类. 如:通过肿瘤面积等属性预测肿瘤是否为良性.判断邮件是否为垃圾邮件等. 二.无监督学习 无监

西南民大oj(两园交求面积)

西南民大oj:http://www.swunacm.com/acmhome/welcome.do?method=index 我的几何不可能那么可爱 时间限制(普通/Java) : 1000 MS/ 3000 MS          运行内存限制 : 65536 KByte总提交 : 11            测试通过 : 8 描述 小朋友们 你们好~ 你们都知道AT立场吧 AT立场又叫“A T Field”,是“Absolute Terror Field”的缩写.直译作“绝对恐怖领域”,又称绝

51nod 1102 面积最大的矩形 &amp;&amp; 新疆大学OJ 1387: B.HUAWEI&#39;s billboard 【单调栈】+【拼凑段】(o(n) 或 o(nlog(n))

题面1: ? 题面2: ? 两道题除了数据范围不同,没有任何差异,两道题都可以o(n)(单调栈),o(nlog(n))(我自己的做法)解决. 解题思路1:(单调栈) 对于每个点找到右边第一个比它小的位置con1,并且找到左边第一个比它小的位置con2. 对于每个点更新答案为ans = max(ans, (con2-con1-1)*value[i]). 1的做法是两次裸的单调栈,时间复杂度为o(n). 代码1: #include <bits/stdc++.h> using namespace s

面积最大的全1子矩阵--九度OJ 1497

题目描述: 在一个M * N的矩阵中,所有的元素只有0和1,从这个矩阵中找出一个面积最大的全1子矩阵,所谓最大是指元素1的个数最多. 输入: 输入可能包含多个测试样例.对于每个测试案例,输入的第一行是两个整数m.n(1<=m.n<=1000):代表将要输入的矩阵的大小.矩阵共有m行,每行有n个整数,分别是0或1,相邻两数之间严格用一个空格隔开. 输出: 对应每个测试案例,输出矩阵中面积最大的全1子矩阵的元素个数. 样例输入: 2 2 0 0 0 0 4 4 0 0 0 0 0 1 1 0 0