poj (1031) 计算几何

北京大学poj题目解题代码 此压缩包包含北京大学POJ题目的绝大部分解题代码,一道题目有不同语言的编程,但主要是C++语言,仅供大家学习之用。 立即下载
题目描述
平面上有一块栅栏围成的区域。
栅栏的高度为h,且在平面上的投影是一个封闭的多边形(不存在多边形的边交叉的情况

),它的N个顶点可以由笛卡尔坐标系中的坐标(Xi,Yi)表示。
在原点O(0,0)处有一个台灯。台灯可能在栅栏内或栅栏外,但不会刚好在栅栏的边上。
如下图所示(细线表示没有被台灯照亮的边):
栅栏是完全黑的,即,它不会反射光线,散射光线,或让光线通过。
研究和实验发现,能被光线照到的任意一个点的光强度有如下公式:
			I0=k/r
其中k是一个常量,r是该点与台灯在平面上的距离。
栅栏上一段宽度为dl、高度为h的无穷窄的板(在平面投影上为一个点A)的亮度为:
			dI=I0*|cosa|*dl*h
其中I0是这段板(即点A)的光强度,a是点A到台灯的方向(AO)与点A所在的栅栏的法向量

所形成的角度。
你需要写一个程序来计算栅栏上的总亮度。
解题思路:
把dl=rdă代入就能求得I=ă*k*h,其中ă是每条边对原点夹的角,比如对边AB,它的ă就是

<AOB。那么下面的问题就转化为整个图形对原点所夹的角的最大值,这里可能有个问题

,比如对于一个螺旋型的Fence,原点在中心,那么可能求出的夹角大于2*PI,由于

Fence是不能透光、反射、散射的,因此最大值只能为2*PI。又由于Fence不能经过原点

,因此每条边的夹角在 -PI~PI之间,这里求整个图形对原点所夹的角用了一个很强的

方法,可以保证无论从哪个点开始算,只要是按顺序,它一定能求得最大的角度(我领

悟了半天啊),而且min一定要初始化为0而不是2*PI等大于0的数,考虑下原点在图形内

部的情况就知道了~~至于正确性,可以自已画个图就能理解了~
http://zh.wikipedia.org/zh/Atan2  



#include <stdio.h>
#include <math.h>
#define PI 3.1415926  //3.1415926535897932
struct point
{
	double x,y;
}a[110];

double Getangle(point a,point b) 
{
    double x=atan2(a.x,a.y);
	double y=atan2(b.x,b.y);
	
	if(x-y>PI) y+=2*PI;
	
	if(y-x>PI) x+=2*PI;
    return x-y;
}
int main()
{
	int n,i;
	double k,h,temp,min,max,sum;
	scanf("%lf%lf%d",&k,&h,&n);
	
	
	for(i=0;i<n;i++)
		scanf("%lf%lf",&a[i].x,&a[i].y);
	a[n].x=a[0].x;
	a[n].y=a[0].y;
	sum=0;
	max=min=0;
	for(i=0;i<n;i++)
	{
		temp=Getangle(a[i],a[i+1]);
		sum+=temp;     
		if(sum<min)min=sum;
		if(sum>max)max=sum;
		
		if((max-min)>=2*PI)
		{
			max=min+2*PI;
			break;
		}
	}
	printf("%.2lf\n",(max-min)*k*h);
	
	
	
	
	return 0;
} 

Ubuntu HackRF One、GNU Radio、Gqrx相关环境搭建 本文介绍Ubuntu HackRF One、GNU Radio、Gqrx相关环境搭建方法。 阅读详情

相关推荐

Joern实战:从代码导入到Python分析的全流程避坑指南(附常见错误解决方案)

本文详细介绍了Joern静态分析工具从代码导入到Python分析的全流程实践指南,包括环境配置、代码导入技巧、数据库服务优化、Python交互分析及性能调优等关键步骤。特别针对常见错误提供了实用解决方案,帮助开发者高效进行代码安全分析和漏洞挖掘。

weixin_28309571的博客 140

poj 1031 多边形对点(向周围发射光线)的覆盖

Fence Time Limit:1000MS Memory Limit:10000K Total Submissions:3018 Accepted:1010 Description There is an area bounded by a fence on some flat field. The fence has t...

weixin_30340353的博客 212

ENSP内使用wireshark进行抓包,并且解析icmp报文

前四位:54 89 98 e8 20 38 为ip报文包的mac地址也就是物理地址。一开始进行抓包是没有icmp报文的,需要我们在ensp中使用pc1请求联通pc9。协议编号后分别为:ip版本、ip首部报文长度、服务类型、ip报文总长度。最后为校验和 、源ip地址、目的ip、从08 00开始为真正的数据。我们需要实验的端口为:0/0/4,也就是抓包第三个交换机内的报文。其中显示的icmp报文就是我们需要解析的ip报文。源mac地址后跟着的就是协议编号: 08 00。根据ip报文包的结构我们进行解析。

2301_81713278的博客 2138

poj——1031——fence

address:http://poj.org/problem?id=1031 My thought:说实话 看见英语题的时候 状态不咋好,后来勉强把题目看完。 不是太懂,想了好久,题目根本通不了,这英语太菜让我无语,我去度了一下,有的解法是用积分,有的说这是一道很水的题目。 我大概都看了看,有一些代码 提示错误,下面这个代码是可以用的。   题目中有一部分不是太懂,如果哪位朋友看懂了,可以留

Kamy Shi 1366

Delphi开发者必备:CEF4Delphi跨平台浏览器嵌入实战指南(含Lazarus适配)

本文详细介绍了Delphi开发者如何利用CEF4Delphi实现跨平台浏览器嵌入,包括环境配置、Lazarus适配、ARM架构优化及Firemonkey集成等实战技巧。通过Chromium引擎的强大功能,开发者可以轻松为传统桌面应用添加现代浏览器特性,提升多平台开发效率。

weixin_29233333的博客 226

Flannel,Calico 和 Cilium 之间有哪些优缺点和差别?

例如,在一个多租户的容器集群中,可以通过Calico为不同租户的容器设置精细的访问控制策略,确保每个租户的资源安全。例如,在设置复杂的网络策略和BGP路由时,需要对网络概念和Calico的配置语法有比较深入的了解。它可以根据容器的标签、服务等信息来定义访问规则,并且可以实现更加细粒度的网络安全策略,如HTTP层的策略。性能损耗:在overlay网络模式下(如VXLAN),由于需要对数据包进行额外的封装和解封装操作,会带来一定的性能损耗,尤其是在高流量的场景下,这种性能损耗可能会更加明显。

chinansa的博客 1529

poj 1031

题目 Fence Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 3669   Accepted: 1267 Description There is an area bounded by a fence on some flat field. T

PaladinDu的专栏 498

智能车竞赛必备:STC32G144K开源库实战指南(含总钻风摄像头配置)

本文为智能车竞赛参赛者提供了一份基于STC32G144K微控制器与逐飞开源库的实战开发指南。文章详细介绍了从开发环境搭建、总钻风摄像头驱动配置与图像采集优化,到核心控制算法实现与多任务调度等关键步骤,旨在帮助队伍快速构建稳定高效的视觉处理系统,提升竞赛竞争力。

weixin_29191081的博客 708

poj1031---计算几何

//由题目给出的公式,积分 //其实我也是看网上的结论这题 #include #include #include #include #include #define dist(a,b) sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y)) #define cross(a,b,c) (b.x-a.x)*(c.y-a.y)-(b.y-a.y)*(c.x-a.x

carter91620 1150

CVPR 2026 即插即用 | 注意力篇 | MSEF:超轻注意力,空间-通道双分支并行融合,既增强特征又抑制噪声!

Multinex提出了一种超轻量级微光图像增强框架,其核心创新是MSEF模块。MSEF采用双分支并行架构,结合空间局部特征(深度可分离卷积)和全局通道注意力(改进SE),通过Tanh激活实现特征增强与抑制。相比传统注意力模块,MSEF在几乎不增加计算量的情况下显著提升性能,特别适合轻量级网络和边缘设备部署。实验表明,该模块能有效提升PSNR约3dB,同时保持极低的参数量(0.7K-45K)。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 603

【Windows Server 2019】企业虚拟专用网络服务的配置和管理(上)

博文介绍了部署企业虚拟专用网的定义,目的,以及好处。同时说明了实验拓扑图以及虚拟专用网络的工作原理。

VMware, Windows, Linux, Cisco, Container, Kubernetes, Kali 1万+

POJ 1031--Fence

poj 1031

Hering_Linux的专栏 691

C# MES通信从入门到精通(1)——串口传输文件

本文详细介绍了在Mes通信领域如何使用串口发送文件,由实战经验总结,堪称MES通信领域的葵花宝典!

qq_34059233的博客 3749

【计算几何】-poj1031-Fence

题意 有一个灯,有一些栏杆,定义单位光照强度的式子与距离成反比,然后一块区域的光照总和就等于单位光照强度的积分。 题解 积分后发现,光照总和与栏杆的形状无关,只与与由灯引出的射线形成的夹角有关,故求夹角就行 求夹角的时候有一个小trick,我们可以用第一个点与灯的连线当做标志,逆时针走就加,顺时针就减,这样可以减少一些特殊情况的判断 代码 #include <iostream> #in...

wang_viscaria的博客 210

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

【计算几何】poj1031 fence

简直吐血啊。。。。本来就是求个角度,自作聪明的用点积和叉积来求,后来发现都错掉了。。。。 #include #include #include #include using namespace std; const double PI=3.1415926535; struct Point{ double x,y; }; Point point[205]; double beta(int k)

BananaTree 1258

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

poj 1031 Fence 计算几何

物理题+数学题+信息学题 1 #include<iostream> 2 #include<cmath> 3 using namespace std; 4 #define MAXN 101 5 #define PI 3.1415926 6 struct point 7 { 8 double x,y; 9 };10 point a[MAXN];11 dou...

weixin_30856725的博客 116

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

POJ1031 Fence

题目来源:http://poj.org/problem?id=1031 题目大意:   有一个光源位于(0,0)处,一个多边形的围墙。围墙是“全黑”的,不透光也不反射光。距光源r处的光强度为I0=k/r,k为常数。   一块无穷窄高为h的墙上围墙受到的照度为dI=I0*|cosα|*dl*h,其中I0为该点光强,α为法线与该点到光源连线的夹角。 求总照度。(dI之和) 输入:第一行三...

weixin_30483013的博客 127

POJ 1031 Fence

题目链接:http://poj.org/problem?id=1031 题目大意: 略 题目解析: 求原点能够照射多边形的最大角度,该角度是弧度制下的夹角 AC代码: #include<iostream> #include<algorithm> #include<math.h> #include<stdio.h> using names...

Helloirbd的博客 280

poj计算几何

计算几何是为Regional临时抱佛脚搞的。。还很菜。。大牛们多指教。。 评述的话主要是自己以后找起题来方便。。大牛们忽略就好。。 1031   求多边形累计偏转角。。抄啊抄。。 1039   点积叉积应用。。自己的死活过不了。。计算几何啊。。。 1066   方法是枚举目标点到边上每两点中点构成的线段,找与其他线段相交数最少的 1106   判断半圆最多覆盖多少点 1113 

906

POJ1031

#include <iostream> #include <cmath> #include <cstdio> #include <string> #include <vector> #include <cstdlib> #include <algorithm> #include <stack> #include <queue> #include <list> #include <set> #incl

czx111331的博客 419

poj1031 fence

给一个多边形,求多边形和源点的张角和,这个。。。明明是求积分诶。。。想不通啊 下面这个是ac代码,抄的,还是没看懂。。。 #include #include #define M_PI 3.14159265358979323846 double

alven‘s bookcase 899

poj 计算几何题全集(转)

原文地址:计算几何题全集(转)">poj 计算几何题全集(转)作者:琥珀1031 Fence 1039 Pipe 1092 Farmland 1106 Transmitters 1113 Wall 1118 Lining Up 1133 Stars 1151 Atlantis 1225 STRICTLY INSCRIBED SIMILAR TRIANGLES 1259 The Picnic 126

ˉ夨落旳尐孩的专栏 1214

POJ 1031

题目描述:     对于一个数n,如果是偶数,就把n砍掉一半;如果是奇数,把n变成 3*n+ 1后砍掉一半,直到该数变为1为止。     请计算需要经过几步才能将n变到1,具体可见样例。 输入:     测试包含多个用例,每个用例包含一个整数n,当n为0 时表示输入结束。(1 输出:     对于每组测试用例请输出一个数,表示需要经过的步数,每组输出占一行。

379

计算几何刷题计划(转)

刷题时意外找到了一个好题单,记录一下 POJ 1031Fence 计算视角,要注意角度覆盖大于2*PI的情况POJ 1039Pipe 用叉积判断方向的经典题。枚举两凸点,先计算过这两点能否出左口,若可以再计算最右能到到多远。POJ 1066Treasure Hunt 正方形区域中有n条线段,求从边界到某点最少穿过几条线段。黑书练习题。可BFS,还有更简洁的方法。POJ 1070...

461

POJ 1031 Fence

题目大意:在二维坐标系中,由n个点构成的封闭图形,对于图形上某条直线微元dl,满足关系di=I0*|cosα|*dl*h,I0=k/r;其中k和h为一个定值,r为原点到该直线微元的距离,α为两条直线的夹角,两条直线分别为原点到直线微元所在直线的垂线,原点到直线微元的连线。最后求出

899

poj1031(原点对多边形的张角)

#include #include #include #include #include #include #include #define ll long long #define ls l,m,rt<<1 #define rs m+1,r,rt<<1|1 #define PI acos(-1.0) using namespace std; struct node { doubl

__water 573
上一篇: poj 2348(博弈)
下一篇: poj 1034
weiwei2012start
博客等级 码龄14年 69粉丝 145原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值