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 ...
随机推荐
- android 中uri.parse()用法
android 中uri.parse()用法 1,调web浏览器 Uri myBlogUri = Uri.parse("http://xxxxx.com"); returnIt = ...
- 解决 kindle 书籍字体颜色偏淡问题的方法
现象 通过Markdown转换而来的mobi格式书籍都有一个大问题:字体偏淡,放在kindle上看对比度很差. 原因分析: 导致这种问题的原因,可能是因为在制作电子书的过程中,这些内容是被标注了彩色或 ...
- JVM笔记7:类加载器
虚拟机设计团队把类加载阶段中的"通过一个类的全限定名来获取描述此类的二进制字节流"这个动作放到Java虚拟机外部实现,以便让应用程序自己决定如何去获取所需要的类,实现这个动作的代码 ...
- Fragment碎片频繁来回切换的时候报java.lang.IllegalStateException: No activity
出现这个问题的原因是因为使用的transcation.replace(fragmentTwo);的方式进行碎片切换的. 解决方案是使用add和show.hide方法组合实现碎片的切换(应该是显示.隐藏 ...
- 20160331javaweb之JSP include 指令&&九大隐式对象
3.零散知识 (1)jsp映射 <servlet> <servlet-name>index</servlet-name> <jsp-file>/inde ...
- iOS 开发中的单例
在iOS开发中经常会用到单例,比如每个iOS程序本身就是一个单例,在比如进行个人偏好设置存储的时候用的也是一个单例.那我们如何自己来写一个单例类呢,用自己的单例对象呢?下面是我写的一个单例的头文件里的 ...
- jsonp调用webapi和mvc
webapi代码如下: public string Get(int id) { var callback = HttpContext.Current.Request["callback&qu ...
- js自执行函数表达式
// 下面2个括弧()都会立即执行 (function () { /* code */ } ()); // 推荐使用这个(function () { /* code */ })(); // 但是这个也 ...
- HDU 2501 Tiling_easy version(简单递推)
Tiling_easy version Problem Description 有一个大小是 2 x n 的网格,现在需要用2种规格的骨牌铺满,骨牌规格分别是 2 x 1 和 2 x 2,请计算一共有 ...
- ZJK的黑OJ(树的最大独立集)(树形DP)
ZJK的黑OJ zjk开了一家"善良OJ".这其实是家黑OJ.每AC一道题,网站便会自动在电脑上安装一种木马.zjk通过窃取信息获取收益(如网游帐号.OI资料.和KK的照片等等). ...