博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Area - POJ 1654(求多边形面积)
阅读量:5239 次
发布时间:2019-06-14

本文共 1031 字,大约阅读时间需要 3 分钟。

题目大意:从原点开始,1-4分别代表,向右下走,向右走,向右上走,向下走,5代表回到原点,6-9代表,向上走,向左下走,向左走,向左上走。求出最后的多边形面积。

分析:这个多边形面积很明显是不规则的,可以使用向量积直接求出来面积即可。

代码如下:

-----------------------------------------------------------------------------------------------------------------------------------

#include
#include
const int MAXN = 1e6+7; ///1-4分别代表,向右下走,向右走,向右上走,向下走,5代表回到原点,6-9代表,向上走,向左下走,向左走,向左上走。int dir[10][2] = { {},{
1,-1},{
1,0},{
1,1},{
0,-1},{
0,0},{
0,1},{-1,-1},{-1,0},{-1,1} };char s[MAXN];int main(){ int T; scanf("%d", &T); while(T--) { scanf("%s", s); long long ans=0, x=0, y=0, nx, ny; for(int i=0; s[i]; i++) { nx = x+dir[ s[i]-'0' ][0]; ny = y+dir[ s[i]-'0' ][1]; ans += (x*ny - y*nx); x=nx, y=ny; } if(ans < 0)ans *= -1; if(ans % 2 == 0) printf("%lld\n", ans/2); else printf("%lld.5\n", ans/2); } return 0;}

 

转载于:https://www.cnblogs.com/liuxin13/p/4913247.html

你可能感兴趣的文章
LeetCode--169--求众数
查看>>
Copy 函数
查看>>
Android服务之Service(其一)
查看>>
网站sqlserver提权操作
查看>>
javascript之聊天室(单机)来自于冷的锋刃
查看>>
青蛙跳一格或者两格,n格跳法
查看>>
Palindrome Partitioning
查看>>
Leetcode: Binary Tree Inorder Traversal
查看>>
sessionStorage、localStorage与cookie
查看>>
3ds max 转换文件格式插件开发
查看>>
PHP变量作用域以及地址引用问题
查看>>
实验四
查看>>
网站迁移时候,发现<head>内容都到body里了
查看>>
前端开发实现自动化编译与部署
查看>>
3W法则-学习Docker
查看>>
Elastic Stack-Elasticsearch使用介绍(三)
查看>>
MacOS copy图标shell脚本
查看>>
linux 性能分析工具整理
查看>>
关于在Servelet中如何获取当前时间的操作
查看>>
怎么打包谷歌商店安装的文件?
查看>>