Get Off My Lawn! Kattis
来源:互联网 发布:mac上有什么好玩的游戏 编辑:程序博客网 时间:2024/06/03 16:24
题目链接:https://vjudge.net/contest/173017#problem/E
题意:已知两个点确定一个无限长的直线(墙),狗链一端拴在原点,求狗链至少要多长能使守卫的面积大于等于L.
思路:当狗链小于等于原点到直线距离L1时,守卫面积为整圆. 大于L1时,守卫面积为扇形加三角形面积。
三角形面积公式: S=1/2*d*h(底*高*二分之一)
扇形面积公式:
#include <iostream>#include<cstdio>#include<cstring>#include<cmath>using namespace std;#define PI acos(-1.0)int main(){ double l,x1,x2,y1,y2,l1,fl,p,a,b; int r; fl=30/asin(0.5); //利用30度角求角度/弧度,因为反三角函数得到的是弧度,为180/π while(scanf("%lf%lf%lf%lf%lf",&l,&x1,&y1,&x2,&y2)==5){ if(x1==x2) //当斜率不存在时 l1=abs(x1); else l1=abs(x2*y1-x1*y2)/(sqrt(1+(y2-y1)*(y2-y1)/(x2-x1)/(x2-x1)));//l1为原点到直线距离 for(r=1;r<100;r++) { if(r<=l1) { if(PI*r*r>=l) //守卫面积为整圆时 break; } else { p=(180+fl*asin(l1/r)*2)/360; //p为扇形的角度/360° if(l1*sqrt(r*r-l1*l1)/2+PI*r*r*p>=l) //三角形面积+扇形 break; } } printf("%d\n",r); } return 0;}
阅读全文
0 0
- Get Off My Lawn! Kattis
- 别跟我唠叨 get off my back
- Kick off my blog ,
- Show off my Nvidia
- Kattis
- Kattis
- Kattis
- (Kattis
- (Kattis
- (Kattis
- (Kattis
- Kattis
- Kattis
- Kattis
- Kattis
- Kattis
- Kattis
- Kattis
- html和css以及javascript注释
- c/c++码农对go中包的错误理解
- 美团点评2016研发题目-[编程题-美团] 二维数组打印
- iOS对图片压缩
- 摄像机模型——针孔成像
- Get Off My Lawn! Kattis
- 有用
- svn代码库迁移到另一台服务器
- HDU 2829 Lawrence(四边形优化dp/斜率优化dp)
- LeetCode-27-Remove Element(消除数组中给定的元素)
- java 中的process类
- 13:大整数的因子
- git特性使用
- css样式片段