原 poj 2677:肿瘤检测

描述

一张CT扫描的灰度图像可以用一个N*N(0 < N < 100)的矩阵描述,矩阵上的每个点对应一个灰度值(整数),其取值范围是0-255。我们假设给定的图像中有且只有一个肿瘤。在图上监测肿瘤的方法如下:如果某个点对应的灰度值小于等于50,则这个点在肿瘤上,否则不在肿瘤上。我们把在肿瘤上的点的数目加起来,就得到了肿瘤在图上的面积。任何在肿瘤上的点,如果它是图像的边界或者它的上下左右四个相邻点中至少有一个是非肿瘤上的点,则该点称为肿瘤的边界点。肿瘤的边界点的个数称为肿瘤的周长。现在给定一个图像,要求计算其中的肿瘤的面积和周长。

输入

输入第一行包含一个正整数N(0 < N < 100),表示图像的大小;接下来N行,每行包含图像的一行。图像的一行用N个整数表示(所有整数大于等于0,小于等于255),两个整数之间用一个空格隔开。

输出

输出只有一行,该行包含两个正整数,分别为给定图像中肿瘤的面积和周长,用一个空格分开。

样例输入

6
99 99 99 99 99 99
99 99 99 50 99 99
99 99 49 49 50 51
99 50 20 25 52 99
40 50 99 99 99 99
99 99 99 99 99 99

样例输出

9 8
 1 #include <iostream>
 2 using namespace std;
 3
 4 int main() {
 5      int N;
 6      int size = 0, circle = 0;
 7      int i, j;
 8      cin >> N;
 9      int num[101][101];
10      for(i = 0; i < N; i++)
11           for(j = 0; j < N; j++)
12                cin >> num[i][j];
13      for(i = 0; i < N; i++)
14           for(j = 0; j < N; j++)
15                if(num[i][j] <= 50) {
16                     size++;
17                     if(i == 0 || i == N-1 || j == 0 || j == N-1)//四周的点一定是周长上的点
18                          circle++;
19                     else if(num[i-1][j] > 50 || num[i+1][j] > 50 || num[i][j-1] > 50 || num[i][j+1] > 50)//四周有非肿瘤的点
20                          circle++;
21                }
22      cout << size << " " << circle << "\n";
23      return 0;
24 }

抓住题中的有效信息,判断周长。

时间: 2024-07-28 16:04:21

原 poj 2677:肿瘤检测的相关文章

原POJ 2713 肿瘤面积

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

POJ 2677 Tour 双调旅行商 dp, double+费用流

题目链接:点击打开链接 题意:给定二维平面上的n个点 从最左端点到最右端点(只能向右移动) 再返回到到最右端点(只能向左移动,且走过的点不能再走) 问最短路. 费用流: 为了达到遍历每个点的效果 把i点拆成 i && i+n 在i ->i+n 建一条费用为 -inf 的边,流量为1 这样跑最短路时必然会经过这条边,以此达到遍历的效果. dp :点击打开链接 对于i点 :只能跟一个点相连 -- 1.跟 i-1点相连 2.不跟i-1相连 用dp[i][j] 表示两个线头为 i 和 j 的

POJ 2677 旅行商问题 双调dp或者费用流

Tour Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 3408   Accepted: 1513 Description John Doe, a skilled pilot, enjoys traveling. While on vacation, he rents a small plane and starts visiting beautiful places. To save money, John must

[ACM] POJ 2677 Tour (动态规划,双调欧几里得旅行商问题)

Tour Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 3585   Accepted: 1597 Description John Doe, a skilled pilot, enjoys traveling. While on vacation, he rents a small plane and starts visiting beautiful places. To save money, John must

Prime Test POJ - 1811(素性检测+大数分解)

Prime Test POJ - 1811 题意:判断N (2 <= N < 2 54) 是不是素数,如果不是求它的最小素因数. millerRabin素性检测 + pollard rho大数分解 链接 1 #include <iostream> 2 #include <cstring> 3 #include <cstdio> 4 #include <algorithm> 5 using namespace std; 6 #define LL l

百练_2677 肿瘤检测

描述 一张CT扫描的灰度图像可以用一个N*N(0 < N < 100)的矩阵描述,矩阵上的每个点对应一个灰度值(整数),其取值范围是0-255.我们假设给定的图像中有且只有一个肿瘤.在图上监测肿瘤的方法如下:如果某个点对应的灰度值小于等于50,则这个点在肿瘤上,否则不在肿瘤上.我们把在肿瘤上的点的数目加起来,就得到了肿瘤在图上的面积.任何在肿瘤上的点,如果它是图像的边界或者它的上下左右四个相邻点中至少有一个是非肿瘤上的点,则该点称为肿瘤的边界点.肿瘤的边界点的个数称为肿瘤的周长.现在给定一个图

POJ 2677(双调旅行商问题&lt;bictonicTSP&gt;

Tour Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 3470 Accepted: 1545 Description John Doe, a skilled pilot, enjoys traveling. While on vacation, he rents a small plane and starts visiting beautiful places. To save money, John must dete

(原)error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”

转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5577534.html 在debug下使用intel的mkl库时(release下无此问题),莫名的出现: error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项:  值“0”不匹配值“2” error LNK2038: 检测到“RuntimeLibrary”的不匹配项:  值“MT_StaticRelease”不匹配值“MTd_StaticDebug” 一般情况

原POJ 2767 简单密码

描述Julius Caesar曾经使用过一种很简单的密码.对于明文中的每个字符,将它用它字母表中后5位对应的字符来代替,这样就得到了密文.比如字符A用F来代替.如下是密文和明文中字符的对应关系. 密文A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 明文V W X Y Z A B C D E F G H I J K L M N O P Q R S T U 你的任务是对给定的密文进行解密得到明文. 你需要注意的是,密文中出现的字母都是大写字母.