BZOJ 4789: [CERC2016]Convex Contour
来源:互联网 发布:ios6.1.3软件源 编辑:程序博客网 时间:2024/06/11 04:05
神TM数学题。。。
这种题 还是尽量把自己的代码简单化 特别是讨论部分。。不然烦死你
前后分别搞一下第一个不是三角形的,中间剩下的肯定都是那样了。。
圆形和三角形就用一下三角恒等变换+acos函数就好
(一开始还没想到怎么弄…画画图就好 利用好什么垂直之类的
注意一下 首尾的特殊情况
#include<bits/stdc++.h>using namespace std;inline int read(){ char ch=getchar(); int x=0,f=1; while(ch<'0'||ch>'9'){if(ch=='-')f=-1; ch=getchar();} while(ch>='0'&&ch<='9'){x=(x<<3)+(x<<1)+ch-'0'; ch=getchar();} return x*f;}inline double pf(double x){return x*x;}char c[22];int main(){ int n=read(),i,st; scanf("%s",c+1); double ans; for(i=1;i<=n && c[i]=='T';++i) ; if(i>n){ printf("%.8lf\n",n*2.0+1); return 0; } if(c[i]=='S'){ if(i==1) ans=3.0; else ans=i+2+ sqrt( pf(2-sqrt(3))/4.0+pf(i-1.5) ); if(i==n){printf("%.8lf\n",ans+1.0); return 0;} } if(c[i]=='C'){ if(i==1) ans=acos(-1.0)/2.0+1.0; else{ double u= sqrt( pf(i-1)+pf(sqrt(3)-1)/4.0),o=sqrt(u*u-1/4.0); double s1= (sqrt(3)-1)/2.0/u, c1=(i-1)/u; double s2= o/u, c2=1/2.0/u; ans= i+1.5+o+acos(s1*c2+c1*s2)*0.5; } if(i==n){printf("%.8lf\n",ans-1.0+acos(-1.0)/2.0); return 0;} } st=i; for(i=n;i>0 && c[i]=='T';--i) ; if(c[i]=='S'){ if(i==n){ printf("%.8lf\n",ans+(n-st)*2.0+1); return 0; } ans+= sqrt( pf(2-sqrt(3))/4.0+pf(n-i-0.5) ); ans+= n-i+3 + 2*(i-st-1); printf("%.8lf\n",ans); } else{ if(i==n){ printf("%.8lf\n",ans+(n-st)*2.0-1+acos(-1.0)/2.0); return 0; } double u= sqrt( pf(n-i)+pf(sqrt(3)-1)/4.0),o=sqrt(u*u-1/4.0); double s1= (sqrt(3)-1)/2.0/u, c1=(n-i)/u; double s2= o/u, c2=1/2.0/u; ans+= n-i+2.5+ (i-st-1)*2 +o+acos(s1*c2+c1*s2)*0.5; printf("%.8lf\n",ans); } return 0;}
阅读全文
1 0
- BZOJ 4789: [CERC2016]Convex Contour
- UVALive7749(Convex Contour)-计算几何分类讨论
- UVALive 7749 Convex Contour——模拟
- BZOJ 4791: [CERC2016]Free Figurines 模拟
- GYM 101173 C.Convex Contour(计算几何)
- Central Europe Regional Contest 2016 C.Convex Contour
- Contour
- contour
- CERC2016 gym101173L
- CERC2016 gym101173C
- convex
- [CERC2016][JZOJ5000]Bipartite Blanket 结论
- Contour Processing
- contour 轮廓
- contour count
- convex hull
- Convex combination
- ACdream1012:Convex
- 依据注册日期查询出对应渠道留存
- wampserver 部署php项目出现问题的解决方式
- UGUI事件监听总结
- VS2010提示“不允许指针指向不完整的类类型”
- Java内部类(4):为什么方法传递给匿名内部类或局部内部类的参数必须是final的
- BZOJ 4789: [CERC2016]Convex Contour
- [Operator Overloading]Set Operations
- C#入门之控制台输入和输出
- 上下框架盒子模型,内嵌DataGrid
- Spring学习笔记(一)Spring环境搭建
- Android UI系列之倒计时
- 自定义组件:购买数量,带减少增加按钮
- Redis 简介
- Docker Error response from daemon: client is newer than server