随便翻到的一道题......

题目传送门

这道题是用向量叉积求多边形面积。

首先讲一下向量叉积(也叫外积)。

设两个向量的坐标表示为(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)-磁通量的更多相关文章

  1. 洛谷 P4710 「物理」平抛运动

    洛谷 P4710 「物理」平抛运动 洛谷传送门 题目描述 小 F 回到班上,面对自己 28 / 110 的物理,感觉非常凉凉.他准备从最基础的力学学起. 如图,一个可以视为质点的小球在点 A(x_0, ...

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

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

  3. [洛谷P1707] 刷题比赛

    洛谷题目连接:刷题比赛 题目背景 nodgd是一个喜欢写程序的同学,前不久洛谷OJ横空出世,nodgd同学当然第一时间来到洛谷OJ刷题.于是发生了一系列有趣的事情,他就打算用这些事情来出题恶心大家-- ...

  4. [洛谷3457][POI2007]POW-The Flood

    洛谷题目链接:[POI2007]POW-The Flood 题意翻译 Description 你手头有一张该市的地图.这张地图是边长为 m∗n 的矩形,被划分为m∗n个1∗1的小正方形.对于每个小正方 ...

  5. DP【洛谷P1704】 寻找最优美做题曲线

    [洛谷P1704] 寻找最优美做题曲线 题目背景 nodgd是一个喜欢写程序的同学,前不久(好像还是有点久了)洛谷OJ横空出世,nodgd同学当然第一时间来到洛谷OJ刷题.于是发生了一系列有趣的事情, ...

  6. 【洛谷】P4594 [COCI2011-2012#5] BLOKOVI

    本来已经有一个专门记录洛谷题目的博客了,但这个题之毒瘤...... 为你专门写一篇总行了吧...... 传送门 先说一句,这个题每次摆放都靠到最右边不一定是最优的 因为它可以这个亚子 就是说上面那个块 ...

  7. 洛谷1640 bzoj1854游戏 匈牙利就是又短又快

    bzoj炸了,靠离线版题目做了两道(过过样例什么的还是轻松的)但是交不了,正巧洛谷有个"大牛分站",就转回洛谷做题了 水题先行,一道傻逼匈牙利 其实本来的思路是搜索然后发现写出来类 ...

  8. 洛谷P1352 codevs1380 没有上司的舞会——S.B.S.

    没有上司的舞会  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond       题目描述 Description Ural大学有N个职员,编号为1~N.他们有 ...

  9. 洛谷P1108 低价购买[DP | LIS方案数]

    题目描述 “低价购买”这条建议是在奶牛股票市场取得成功的一半规则.要想被认为是伟大的投资者,你必须遵循以下的问题建议:“低价购买:再低价购买”.每次你购买一支股票,你必须用低于你上次购买它的价格购买它 ...

随机推荐

  1. Ubuntu---Git

    本篇文章简单总结了常用 Git 的使用 前言 设置用户信息 1, Git 是分布式的 SSH 代码管理工具,远程的代码管理是基于 SSH 的,所以要使用远程的 Git 则需要 SSH 的配置. ste ...

  2. 新手学习Web前端的三个高效学习方法,基础要重视

    作为新手,出于对风险的担心,不免在学习一项新技能或者转投一个新行业的时候,有所犹豫与徘徊.毕竟,在这场类似冒险的选择中,我们需要投入时间.精力以及承受相关的经济损失.但是,只有勇敢迈出第一步,才能为生 ...

  3. sybase连接失败 JZ006: Caught IOException: java.net.ConnectException处理方式

    windows系统下的处理办法: 1.查找端口为5000的进程的pid: 在cmd窗口中输入 netstat -ano 我这里是2324. 打开任务管理器,找到pid是2324的进程,结束进程. 打开 ...

  4. java基础一(2020.1.3)

    今日学习内容: 带命令行参数的Java实例 Java的程序结构 Java的变量与常量 带命令行参数的Java实例: class ArgsDemo{ public static void main(St ...

  5. Mybatis配置文件无故报错、无自动完成提示的解决方法,及自动生成主要配置项

    1.引子 Mybatis配置文件显示红叉有错误,而实际检查又没有错误,这是因为开发环境不能识别这种类型的xml文件.要解决这个问题,就要让IDE开发环境能够“认识”这个文件类型,我们要让IDE环境将这 ...

  6. DRF框架之ModelSerializer序列化器

    ModelSerializer是Serializer的子类,序列化和反序列化跟Serializer一样. ModelSerializer与常规的Serializer相同,但提供了: 基于模型类自动生成 ...

  7. webfrom 控件

    服务器基本控件: button: text属性 linkbutton:text属性,它是一个超链接模样的普通button hyperlink: navigateurl:链接地址,相当于<a> ...

  8. 联想的amd电脑,Debian8.8开机后亮度值始终最大,尝试过各种方法,始终无法解决,最后debian8.8在安装开源驱动后,成功调节

    安装ATI显卡驱动(开源)(方法步骤来自Debian WiKi) A.先升级可用的包 # aptitude upgrade B.安装下面3个包 # apt-get install firmware-l ...

  9. TPO5-3 The Cambrian Explosion

    At one time, the animals present in these fossil beds were assigned to various modern animal groups, ...

  10. springCloud负载均衡Ribbon和Feign的区别

    1.什么是负载均衡: 负载均衡(Load Balance)是分布式系统架构设计中必须考虑的因素之一,它通常是指,将请求/数据[均匀]分摊到多个操作单元上执行,负载均衡的关键在于[均匀]. 2.常见的负 ...