双流县规划建设局网站,wordpress footer.php,网站开发接私活,郑州做优化的公司有哪些比赛时没做出来#xff0c;最后10 钟时倒是想枚举每个角度#xff0c;精度估计上可能会出问题#xff1b; 后来听“理宝”说可以暴力枚举边的长度#xff0c;精确到0.001#xff0c;数据恰好10^7#xff0c;T_T~~ vongang说可以用二分做#xff0c;也就是官方解题报告的…比赛时没做出来最后10 钟时倒是想枚举每个角度精度估计上可能会出问题 后来听“理宝”说可以暴力枚举边的长度精确到0.001数据恰好10^7T_T~~ vongang说可以用二分做也就是官方解题报告的解法 这题用二分的关键是 首先Regular Polygon是正多边形 想到边长和所对的角成正比没想到啊Orz各路大神 贴个山寨的代码吧 #includestdio.h#includemath.h#define N 110const double inf 10000;const double piacos(-1.0);const double eps 1e-6;double len[N];bool dd(double x,double y) {return fabs(x-y)eps;}bool xy(double x,double y) {return x y - eps;}bool yx(double x,double y) {return x y eps;}bool xyd(double x,double y) {return x y eps;}bool yxd(double x,double y) {return x y - eps;}double ang_cal(double a,double b,double c){return acos((a*ab*b-c*c)/(2*a*b));}int solve(int n,double x){double ang0;for(int i0;in;i) {if(yxd(x,len[i]len[i1])) return 1;if(xyd(x,fabs(len[i]-len[i1]))) return -1; angang_cal(len[i],len[i1],x); }if(dd(ang,2*pi)) return 0;if(xy(ang,2*pi)) return -1;if(yx(ang,2*pi)) return 1;}bool check(double ang,double x){double a1ang_cal(len[1],x,len[0]);double a2ang_cal(len[1],x,len[2]);return dd(ang,a1a2);}int main(){int cs1,ncs,n; scanf(%d,ncs);while(ncs--) { scanf(%d,n);for(int i0;in;i) scanf(%lf,leni); len[n]len[0];double bg0,endinf,mid;int flag0,cnt0;while( xyd(bg,end) ) {if(dd(bg,end)) cnt;if(cnt2) break; mid(bgend)/2;int anssolve(n,mid);if(ans0) { flag1;break; }if(ans 0) endmid;else bgmid; }if(flag) {double ang(n-2)*pi/n;if(!check(ang,mid)) printf(Case %d: impossible\n,cs);else printf(Case %d: %.3f\n,cs,mid); }else printf(Case %d: impossible\n,cs); }return 0;} 转载于:https://www.cnblogs.com/skyming/archive/2012/04/05/2433683.html