hdu 4752
计算几何+数值计算的题目;
要用到辛普森积分,没有学过~~~
参考学习了acm_Naruto大神 的代码!
代码:
#include<cstdio>
#include<cmath>
#include<algorithm>
#define maxn 20005
using namespace std;
int n,a,b,c,l,r,x[maxn],y[maxn];
double sqr(double x)
{
return x*x;
}
double len(double x)
{
double t,tt;
t=(sqrt((b+*a*x)*(b+*a*x)+)+*a*x+b);
tt=log(t)/(*a);
t=sqrt((b+*a*x)*(b+*a*x)+)*(b+*a*x)/(*a);
tt+=t;
return tt;
} int main()
{
while(scanf("%d%d%d%d%d%d",&n,&a,&b,&c,&l,&r)!=EOF)
{
for(int i=; i<n; i++)
scanf("%d%d",&x[i],&y[i]);
x[n]=x[],y[n]=y[];
double ans=;
for(int i=; i<n; i++)if(x[i]!=x[i+])
{
double x0=x[i],y0=y[i];
double x1=x[i+],y1=y[i+];
if(x0>x1)swap(x0,x1),swap(y0,y1);
double k=(y1-y0)/(x1-x0);
double d=y1-k*x1;
double u=sqr(b-k)-*a*(c-d);//b*b-4*a*c;
double length=;
if(u>=)
{
double t1=(-(b-k)*1.0+sqrt(u))/(2.0*a);//方程的根;
double t2=(-(b-k)*1.0-sqrt(u))/(2.0*a);//方程的根;
if(t1>t2)swap(t1,t2);
t1=max(x0,max(t1,l*1.0));
t2=min(x1,min(t2,r*1.0));
if(t1<=t2)
length=fabs(len(t2)-len(t1));//辛普森积分;
if(x[i]<x[i+])ans+=length;
else ans-=length;
}
}
printf("%.2lf\n",fabs(ans));
}
return ;
}
hdu 4752的更多相关文章
- HDU 4752 Polygon(抛物线长度积分)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4752 题意:给出一个抛物线和一个简单多边形.求抛物线在多边形内部的长度. 思路:首先求出多边形所有边和 ...
- HDOJ 2111. Saving HDU 贪心 结构体排序
Saving HDU Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- 【HDU 3037】Saving Beans Lucas定理模板
http://acm.hdu.edu.cn/showproblem.php?pid=3037 Lucas定理模板. 现在才写,noip滚粗前兆QAQ #include<cstdio> #i ...
- hdu 4859 海岸线 Bestcoder Round 1
http://acm.hdu.edu.cn/showproblem.php?pid=4859 题目大意: 在一个矩形周围都是海,这个矩形中有陆地,深海和浅海.浅海是可以填成陆地的. 求最多有多少条方格 ...
- HDU 4569 Special equations(取模)
Special equations Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u S ...
- HDU 4006The kth great number(K大数 +小顶堆)
The kth great number Time Limit:1000MS Memory Limit:65768KB 64bit IO Format:%I64d & %I64 ...
- HDU 1796How many integers can you find(容斥原理)
How many integers can you find Time Limit:5000MS Memory Limit:32768KB 64bit IO Format:%I64d ...
- hdu 4481 Time travel(高斯求期望)(转)
(转)http://blog.csdn.net/u013081425/article/details/39240021 http://acm.hdu.edu.cn/showproblem.php?pi ...
- HDU 3791二叉搜索树解题(解题报告)
1.题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=3791 2.参考解题 http://blog.csdn.net/u013447865/articl ...
随机推荐
- 功能测试中遇到的一些有意思的bug
2016.1.25 1. Xss攻击型的bug Xss攻击即跨站脚步攻击,通过插入恶意脚本 ,实现对用户浏览器的控制. Bug现象:新增物品时,物品名称输入一段JavaScript代码,在提交时此代 ...
- 移动平台作业——天气预报——天气数据的获得——为应用申请百度ak码
需求: 可切换城市 可实时更新(按钮或手势或下拉刷新) 可现实未来三日的天气 不限制横屏或者竖屏,不限制布局样式,但要求得到的数据均需显示(北京.天气数据.天气图标) 提示: 获得实时天气数据(任选一 ...
- MVC中的URL路由(一)
URL路由系统通过对请求地址进行解析从而得到以目标Controller名称为核心的路由数据.Url路由系统最初是为了实现请求url与物理文件路径分离而建立的,MVC的Url Route是将Url地址与 ...
- asp.net mvc Remote远程验证
1.Model实体 /// <summary> /// 课程编号 /// </summary> [MaxLength()] [Remote("IsUnique_Ava ...
- Code::Blocks开发中的字符串编码错误
刚开始使用Code::Blocks开发Windows中文应用程序的朋友们,如果在代码中使用了中文字符串,编译时可能遇到过Illegal byte sequence或Failure to convert ...
- 初次使用JFinal
刚进公司的时候是经过了学员期培训,不断的学习. 终于有机会可以进入了项目组,一个给予.NET开发的项目,框架是MVC,三个多月的项目在一个团队的合作下完成了一个正式成为程序员后参与的第一个大型项目. ...
- visual studio vs2010 vs2013 显示详细调试信息方法;vs debug 出错怎么办,你需要的不是答案,是方法。
显示详细的输出信息: 选项--项目和解决方案--生成并运行--MSBuild项目生成输出详细信息: 这样在输出目录就会显示详细的错误信息,可以自己分析了.
- 使用宏定义来减少JNI的繁琐
本篇文章由:http://www.sollyu.com/use-macro-definitions-to-reduce-tedious-jni/ 说明 相信写过cocos2d-x的朋友,或者写过jni ...
- CSS Masking(翻译)
原文地址:http://www.html5rocks.com/en/tutorials/masking/adobe/ 关于计算机图形,两种常见的操作是:cliping(裁剪) and masking ...
- HA高可用配置
HA 即 (high available)高可用,又被叫做双机热备,用于关键性业务. 简单理解就是,有两台机器A和B,正常是A提供服务,B待命闲置,当A宕机或服务宕掉,会切换至B机器继续提供服务. 下 ...