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 ...
随机推荐
- Flash学习初总结
话说尝试了一周多的Flash编程,有些理解为什么很多程序员都不喜欢用Flash编程了. 首先,就是没有编程的难度,想要编好Flash,也就是有良好的视觉效果,那么关键点不在你的程序逻辑或者代码条理上, ...
- Spring MVC 3.0.5+Spring 3.0.5+MyBatis3.0.4全注解实例详解(四)
这一章大象将详细分析web层代码,以及使用Spring MVC的注解及其用法和其它相关知识来实现控制器功能. 之前在使用Struts2实现MVC的注解时,是借助struts2-conventi ...
- 初识jsp
复习: 1.servlet生命周期: (1)默认是以第一次请求的时候创建并初始化Servlet,而且只做一次.(构造函数 init()) web.xml(配置后,是可以达到在服务启动后,立刻进行ser ...
- Linux grep用法整理
grep -i 忽略大小写 grep --color grep -v 反向查找 grep -o 只显示被模式匹配到的字符串
- 自己动手实现SharePointList的分页展示
SharePoin列表里对条目的展示只有上一页下一页,不能够跳转,不能够一次导航到第一页和最后一页. 项目需要,所以对列表的数据展示进行了定制化开发来实现如上的功能. 前端用GridView展示,用L ...
- magento addFieldToFilter()方法常用的过滤条件
记录一下Magento模型集合Model Collection中addFieldToFilter()方法常用的过滤条件.以下参数也同样适用于产品实体的addAttributeToFilter()方法. ...
- MySQL(5.6) 函数
字符串函数 ASCII(str) 说明:返回字符串 str 最左边字符的 ASCII 值 mysql'); mysql); mysql> SELECT ASCII('a'); mysql> ...
- ADO.NET连接数据库的两种方式
//实现了IDisposable接口的类,用using括起来 //插入数据 string connString = "Data Source=(local);Initial Catalog= ...
- Installation error INSTALL_FAILED_VERSION_DOWNGRADE错误
最近折腾了一下Robotium自动化测试框架,发现问题还挺多,刚刚解决了一个问题,总算是把环境搞定了,可是一运行测试用例,发现又报Installation error INSTALL_FAILED_V ...
- HeaderViewListAdapter cannot be cast to listAdapter问题原因及解决办法
[o] 在listView中添加leaderView 和footerView的时候要注意在setAdapter之前调用,不然会报如下异常: listAdapter cannot be cast to ...