P1183 多边形的面积

题目描述

给出一个简单多边形(没有缺口),它的边要么是垂直的,要么是水平的。要求计算多边形的面积。

多边形被放置在一个 X-YX−Y 的卡笛尔平面上,它所有的边都平行于两条坐标轴之一。然后按逆时针方向给出各顶点的坐标值。所有的坐标值都是整数(因此多边形的面积也为整数)。

输入输出格式

输入格式:

第一行给出多边形的顶点数 n(n≤100)n(n≤100) 。接下来的几行每行给出多边形一个顶点的坐标值 XX 和 YY (都为整数并且用空格隔开)。顶点按逆时针方向逐个给出。并且多边形的每一个顶点的坐标值 -200≤x,y≤200−200≤x,y≤200 。多边形最后是靠从最后一个顶点到第一个顶点画一条边来封闭的。

输出格式:

一个整数,表示多边形的面积。

输入输出样例

输入样例#1: 复制

10
0 0
4 0
4 1
3 1
3 3
2 3
2 2
1 2
1 3
0 3

输出样例#1: 复制

9思路:皮克公式 +搜索。
#include<queue>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define MAXN 110
using namespace std;
int n,ans,bns;
int map[501][501];
int dx[4]={0,0,1,-1};
int dy[4]={1,-1,0,0};
struct nond{int x,y;
}point[MAXN];
void dfs(int x,int y){if(x>400||x<0||y>400||y<0||map[x][y]!=0)    return ;map[x][y]=1;ans++;dfs(x+1,y);dfs(x-1,y);dfs(x,y+1);dfs(x,y-1);
}
int main(){scanf("%d",&n);point[0].x=-1;point[0].y=-1;for(int i=1;i<=n+1;i++){if(i<=n){scanf("%d%d",&point[i].x,&point[i].y);point[i].x+=200;point[i].y+=200;bns++;}if(i==1){point[n+1].x=point[1].x;point[n+1].y=point[1].y;}if(point[i].x==point[i-1].x){int mi=min(point[i].y,point[i-1].y);int ma=max(point[i].y,point[i-1].y);for(int j=mi;j<=ma;j++)    map[point[i].x][j]=1;bns+=ma-mi-1;}    else if(point[i].y==point[i-1].y){int mi=min(point[i].x,point[i-1].x);int ma=max(point[i].x,point[i-1].x);for(int j=mi;j<=ma;j++)    map[j][point[i].y]=1;bns+=ma-mi-1;}    }dfs(point[1].x+1,point[1].y+1);cout<<ans+bns/2-1;
}

 

转载于:https://www.cnblogs.com/cangT-Tlan/p/9334471.html

洛谷 P1183 多边形的面积相关推荐

  1. 洛谷——P1183 多边形的面积

    P1183 多边形的面积 多边形求面积公式: $\frac {\sum_{i=0}^{n-1}(x_iy_{i+1}-y_ix_{i+1})}{2}$ #include<bits/stdc++. ...

  2. 【洛谷】P1318 积水面积

    题目地址: https://www.luogu.com.cn/problem/P1318 题目描述: 一组正整数,分别表示由正方体叠起的柱子的高度.若某高度值为xxx,表示由xxx个正立方的方块叠起( ...

  3. 洛谷刷题C语言:数字反转、再分肥皂水、三角形面积、Apples Prologue/苹果和虫子、数的性质

    记录洛谷刷题QAQ,一些不大优雅的代码 一.[深基2.例7]数字反转 题目描述 输入一个不小于 100100100 且小于 100010001000,同时包括小数点后一位的一个浮点数,例如 123.4 ...

  4. 洛谷4147:玉蟾宫——题解

    https://www.luogu.org/problemnew/show/P4147#sub 土地被分成N*M个格子,每个格子里写着'R'或者'F',R代表这块土地被赐予了rainbow,F代表这块 ...

  5. 洛谷 深基 第1部分 语言入门 第2章 顺序结构程序设计

    P5703 [深基2.例5]苹果采购 [深基2.例5]苹果采购 - 洛谷 P5703 [深基2.例5]苹果采购(python3实现) P5703 [深基2.例5]苹果采购(python3实现)_青少年 ...

  6. 洛谷、牛客网、AcWing 刷题(python版)

    牛客网python专项练习整理(一) https://blog.csdn.net/weixin_41913008/article/details/87203468 牛客网剑指offer--python ...

  7. 【入门1】顺序结构 (今天刷洛谷了嘛)

    [60天计划] 刷洛谷(题单广场) and Acwing算法基础课 P1001 A+B Problem #include<iostream> #include<algorithm&g ...

  8. 洛谷——P2433 【深基1-2】小学数学 N 合一

    P2433 [深基1-2]小学数学 N 合一 题目描述 问题 1 请输出 I love Luogu! 问题 2 这里有 10 个苹果,小A 拿走了 2 个,Uim 拿走了 4 个,八尾勇拿走剩下的所有 ...

  9. 【洛谷】P4147 玉蟾宫 解题报告

    [洛谷]P4147 玉蟾宫 解题报告 题目背景 有一天,小猫rainbow和freda来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地. 题目描述 这片土地被分成N* ...

最新文章

  1. 图灵2010.05书讯
  2. 设置参数cocos2d-x 2.x 进度条CCProgressTimer
  3. 聊一聊:Service层你觉得有用吗?
  4. 随手正则写的 CSDN【只看楼主】功能
  5. 切割固定长度字符串的方法_木质踢脚线安装的施工方法
  6. GraphQL报错:error: NetworkError when attempting to fetch resource.
  7. vue前期知识点笔记
  8. 【UVALive - 3126】Taxi Cab Scheme (二分图,最小路径覆盖)
  9. 小米android停止,小米由于错误而停止将Android 10推广到MiA3
  10. linux下阻塞的系统调用,Linux下文件的阻塞与非阻塞对部分系统调用的影响
  11. Android 系统(72)---Android系统增加字体库及修改系统默认字体
  12. P1280 尼克的任务
  13. 用c语言实现键盘画图,用C实现键盘画图.doc
  14. SVN切换IP,不换路径,快捷方法
  15. python自动生成字幕_【教程】每天30分钟免费的视频自动生成字幕的方法
  16. Adobe Photoshop 7.0.1 简体中文版注册码
  17. [动态规划]基因序列相似性问题
  18. 逻辑综合重点解析(Design Compiler篇)
  19. QQ局域网聊天软件MFC CSocket编程
  20. Ubuntu16.04下配置nginx + RTMP流媒体服务器

热门文章

  1. 微信公众平台如何获得openid
  2. 看完就会明白windows RT推出的原因、它和window 8到底有些什么区别、微软有什么战略企图--有关于微软Windows RT 你不知道的那些事
  3. python正则表达式中group
  4. mount挂载时 no such device_mount系统调用(vfs_kern_mount-gt;mount_fs-gt;fill_super)
  5. 数学基础 —— 线性代数
  6. 深入理解傅里叶变换的性质:实函数、卷积、相关、功率谱、频响函数
  7. tensorflow出现 ImportError: DLL load failed: 找不到指定的程序
  8. Markdown--语法说明
  9. CSU 1114 平方根大搜索
  10. 计算机外围设备哪两类,《微机原理与接口技术》课后习题答案