题目链接:zoj 3806 Incircle and Circumcircle
题目大意:给定三角形的内接圆半径和外切圆半径,求三角形的三边长。
解题思路:以等腰三角形去构造,确定外切圆半径的时候,内切圆半径的范围为0−3‾‾√R,二分判断即可。
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;
double f (double a, double R) {
double t = sqrt(R * R - a * a / 4) + R;
return sqrt(t * t + a * a / 4);
}
double judge (double a, double b, double R) {
return a * b * b / (2 * R * (a + b + b));
}
double bsearch (double l, double R, double v) {
double r = sqrt(3.0) * R;
for (int i = 0; i < 1000; i++) {
double mid = (l + r) / 2;
double x = f(mid, R);
if (judge(mid, x, R) > v)
r = mid;
else
l = mid;
}
return (l + r) / 2;
}
int main () {
int r, R;
while (scanf("%d%d", &r, &R) == 2) {
if (r * 2 > R)
printf("NO Solution!\n");
else {
double a = bsearch(0, R, r);
double b = f(a, R);
printf("%.10lf %.10lf %.10lf\n", a, b, b);
}
}
return 0;
}
分享到:
相关推荐
浙大ZOJ题目分类,可以让你更方便快速锁定那你想要联系的题目,是自己快速提高·
ZOJ解题报告ZOJ解题报告ZOJ解题报告ZOJ解题报告
zoj 1237 Fans and Gems.md
zoj 2886 Look and Say.md
学习ACM程序设计的朋友一定要看,这是训练必备的POJ ZOJ题目分类及解题思路
zoj题目简单归类zoj题目简单归类zoj题目简单归类
acm中zoj1002的可运行C++程序
其中有pku、hdu、zoj等各大oj的题目分类,pku的oj比较详细一点,按不同算法进行分类,均系从网上自行搜集的。
包含了zoj700多道题目的源代码,在做题时可以参考
Problem Arrangement zoj 3777
ZOJ题目答案源码
一个非常非常非常非常实用的zoj结题代码
浙大ACM网上的题目分类,以及部分题目的题解,包括题目,对于没联网的很适用,即使就有网的也很用的,里面有些题解很祥细……
浙江大学ZOJ源码题解,按照题目类型和难易分类。
zoj 1003 c语言的,要写这么多描述吗。。
ZOJ1805代码
本代码是zoj上AC的1951的代码,把双重循环简化为O(n),不过素数判断的改进还不够
zoj1027解题指南和代码,还不错,是学校培训给的。
ZOJ题解集合-截至2835。共1244个文件,C/C++,有重复
zoj 题库 详细解答 解题代码 acm