hdu 4033 2011成都赛区网络赛 余弦定理+二分 **
2015-08-05 21:46
681 查看
二分边长,判断最后内角和是否为2pi,注意l与r的选取,保证能组成三角形
#include<cstdio> #include<iostream> #include<algorithm> #include<cstring> #include<cmath> #include<queue> #include<map> using namespace std; #define MOD 1000000007 const int INF=0x3f3f3f3f; typedef long long ll; #define cl(a) memset(a,0,sizeof(a)) #define ts printf("*****\n"); const int MAXN=1005; int n,m,tt; const double eps = 1e-8; const double pi = acos(-1.0); double a[MAXN]; int main() { int i,j,k; #ifndef ONLINE_JUDGE freopen("1.in","r",stdin); #endif scanf("%d",&tt); int ca=1; while(tt--) { scanf("%d",&n); for(i=0;i<n;i++) { scanf("%lf",&a[i]); } a =a[0]; bool flag=0; double l=0,r=20000; double mid; for(i=1;i<=n;i++) { r = min(r,a[i]+a[i-1]); l = max(l,fabs(a[i]-a[i-1])); } while(r-l>eps) { mid=(l+r)/2.0; double s,sum=0; for(i=1;i<=n;i++) { s=(a[i]*a[i]+a[i-1]*a[i-1]-mid*mid)/(2.0*a[i]*a[i-1]); sum+=acos(s); } if(fabs(sum-2*pi)<eps) { flag=1; break; } else if(sum>2*pi) { r=mid; } else l=mid; } printf("Case %d: ",ca++); if(flag) printf("%.3f\n",mid); else printf("impossible\n"); } }
相关文章推荐
- HDU 5352 - MZL's City(网络流‘最小费用流)
- VMware虚拟机上网络连接(network type)的三种模式--bridged、host-only、NAT
- Volley 库通过网络获取 JSON 数据
- Http网络连接处理
- iOS - 网络数据安全加密(MD5)
- iOS开发网络篇—NSURLConnection基本使用
- TCP模型及其重点协议总结
- TCP模型及其重点协议总结
- hdu5352 2015多校第5场 网络流(或二分图)
- hdu 4034 2011成都赛区网络赛 逆向floyd **
- tcp 多线程与多进程调用close
- 黑马程序员—JAVA基础—网络编程
- Java 模拟HTTP Get Post请求 校园BBS自动回帖实现
- 如何获取网络标准时间
- PHP检测链接是否是SSL连接 ,也就是判断HTTPS
- 揭秘网络女主播:百万年薪下的暗黑成长史(全)
- http
- 悟空帮你理解https
- 浅谈网络语音技术 (转载)
- 网络应用发布到linux上的web服务器上页面上显示麻将牌式字符的问题