[洛谷P2785] 物理1(phsic1)-磁通量
随便翻到的一道题......
这道题是用向量叉积求多边形面积。
首先讲一下向量叉积(也叫外积)。
设两个向量的坐标表示为(x1,y1)、(x2,y2)。
那么它们的叉积为x1*y2-x2*y1。
其几何意义为两个向量所成的平行四边形的面积(浅蓝色部分)。

两个向量的叉积与这两个向量都垂直,且有正负之分。
叉积的正负取决于两向量夹角sin值的正负(图中叉积均为:绿向量×红向量)。


对于两个点A、B以及原点O,向量OA与向量OB的叉积的一半代表三角形OAB的面积。
这样我们就能通过这个把多边形分割成三角形,进而求出多边形的面积。
对于下面这个四边形ABCD:

S(ABCD)=S(OAB)+S(OBC)-S(OCD)-S(ODA)。
我们沿着多边形走一周,依次加上(或减掉)相邻的两个顶点与原点形成的三角形的面积就行。
三角形的面积就用叉积算嘛。
而且你可以发现向量的叉积特别可爱,都不需要你判断是该加上还是该减掉。
叉积算出来是正的,对面积的贡献就为正;是负的,对面积的贡献就为负。
最后别忘了最后一个点和第一个点也要求一下叉积。
所以多边形的面积就这么愉快地算出来啦~
#include<cstdio> int n;
double b,ans; struct vec
{
double x,y;
}a[]; double cross(vec q,vec w)
{
return q.x*w.y-w.x*q.y;
} int main()
{
scanf("%d%lf",&n,&b);
for(int i=;i<=n;i++)scanf("%lf%lf",&a[i].x,&a[i].y);
a[n+]=a[];
for(int i=;i<=n;i++)ans+=cross(a[i],a[i+]);
ans=ans*b*0.50;
if(ans<)ans=-ans;
printf("%.4lf",ans);
return ;
}
[洛谷P2785] 物理1(phsic1)-磁通量的更多相关文章
- 洛谷 P4710 「物理」平抛运动
洛谷 P4710 「物理」平抛运动 洛谷传送门 题目描述 小 F 回到班上,面对自己 28 / 110 的物理,感觉非常凉凉.他准备从最基础的力学学起. 如图,一个可以视为质点的小球在点 A(x_0, ...
- 洛谷——P1183 多边形的面积
P1183 多边形的面积 多边形求面积公式: $\frac {\sum_{i=0}^{n-1}(x_iy_{i+1}-y_ix_{i+1})}{2}$ #include<bits/stdc++. ...
- [洛谷P1707] 刷题比赛
洛谷题目连接:刷题比赛 题目背景 nodgd是一个喜欢写程序的同学,前不久洛谷OJ横空出世,nodgd同学当然第一时间来到洛谷OJ刷题.于是发生了一系列有趣的事情,他就打算用这些事情来出题恶心大家-- ...
- [洛谷3457][POI2007]POW-The Flood
洛谷题目链接:[POI2007]POW-The Flood 题意翻译 Description 你手头有一张该市的地图.这张地图是边长为 m∗n 的矩形,被划分为m∗n个1∗1的小正方形.对于每个小正方 ...
- DP【洛谷P1704】 寻找最优美做题曲线
[洛谷P1704] 寻找最优美做题曲线 题目背景 nodgd是一个喜欢写程序的同学,前不久(好像还是有点久了)洛谷OJ横空出世,nodgd同学当然第一时间来到洛谷OJ刷题.于是发生了一系列有趣的事情, ...
- 【洛谷】P4594 [COCI2011-2012#5] BLOKOVI
本来已经有一个专门记录洛谷题目的博客了,但这个题之毒瘤...... 为你专门写一篇总行了吧...... 传送门 先说一句,这个题每次摆放都靠到最右边不一定是最优的 因为它可以这个亚子 就是说上面那个块 ...
- 洛谷1640 bzoj1854游戏 匈牙利就是又短又快
bzoj炸了,靠离线版题目做了两道(过过样例什么的还是轻松的)但是交不了,正巧洛谷有个"大牛分站",就转回洛谷做题了 水题先行,一道傻逼匈牙利 其实本来的思路是搜索然后发现写出来类 ...
- 洛谷P1352 codevs1380 没有上司的舞会——S.B.S.
没有上司的舞会 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description Ural大学有N个职员,编号为1~N.他们有 ...
- 洛谷P1108 低价购买[DP | LIS方案数]
题目描述 “低价购买”这条建议是在奶牛股票市场取得成功的一半规则.要想被认为是伟大的投资者,你必须遵循以下的问题建议:“低价购买:再低价购买”.每次你购买一支股票,你必须用低于你上次购买它的价格购买它 ...
随机推荐
- ubuntu14.10安装gitlab
1 换源: # curl https://packages.gitlab.com/gpg.key 2> /dev/null | sudo apt-key add - &>/dev/ ...
- IOC与AOP的理解
转自 https://blog.csdn.net/qq_38006047/article/details/80797386 1,理解“控制反转” 控制反转,也叫依赖注入,是面向对象编程中的一种设计理念 ...
- dubbo的本地存根
在消费者创建存根类 修改消费者XML 也可以修改消费者注解
- Pytorch——BERT 预训练模型及文本分类
BERT 预训练模型及文本分类 介绍 如果你关注自然语言处理技术的发展,那你一定听说过 BERT,它的诞生对自然语言处理领域具有着里程碑式的意义.本次试验将介绍 BERT 的模型结构,以及将其应用于文 ...
- Maven打包时报Failed to execute goal org.apache.maven.plugins:maven-war-plugin:解决方案
问题现象: 用Maven打包时,报Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.2:war错误. 原因分析: 打 ...
- ZZJ_淘淘商城项目:day03(淘淘商城02 - 后台系统功能实现)
1. 今日大纲 1. 学习Nginx的使用 2. 实现商品的管理 a) 新增商品 b) 查询商品列表 c) 编辑商品 d) 删除商品 e) ...
- c语言中getchar的用法
/************************************************************************* > File Name: getchar2. ...
- vs code打开文件显示的中文乱码
这种情况下,一般是编码格式导致的,操作办法: 鼠标点击之后,上面会弹出这个界面,双击选中 然后从UTF-8换到GB2312,或者自己根据情况,更改编码格式
- sql表变量,临时表
@test是表变量,存在于内存中:#是临时表,存在于tempdb数据库空间.
- 文件流下载时 axios blob文件大小不正确?
文件流下载时 js blob文件大小不正确? res.data的字节长度 length blob.size匹配不上.. axio请求里必须修改 responseType: 'blob' 参数, 默认是 ...