HUST 1632 Sheep’s Toy I(计算几何 正方形旋转覆盖面积)
2013-12-14 13:10
337 查看
题目链接:http://acm.hust.edu.cn/problem.php?id=1632
很简单的一道几何题目,利用的知识就是初中的,推推角度之间的关系,注意点细节就OK了。
#include <string.h>
#include <algorithm>
#include <iostream>
#include <stdio.h>
#include <cmath>
using namespace std;
const double pi = acos(-1.0);
int main(){
int i,j,k,t;
double angle,l,r,now,now1,d,th1,th2,th3,s1,s2,p,p1,pp;
scanf("%d",&t);
while(t--){
scanf("%lf%lf",&l,&angle);
angle=fabs(angle);
th1=angle/180.0*pi;
th2=45.0/180.0*pi;
th3=(180.0-45.0-angle)/180*pi;
r=sqrt(l*l/2.0);
if(angle>=90.0){
printf("%.2lf\n",pi*r*r);
continue;
}
if(angle==0.0){
printf("%.2lf\n",l*l);
continue;
}
now=r/sin(th3)*sin(th2);
now1=r-now;
p=r/sin(th3)*sin(th1);
p1=l-p;
pp=now1/p;
s1=now*r*sin(th1)/2.0;
s2=s1*pp*pp;
printf("%.2lf\n",l*l-s1*4+s2*4+4*angle/360.0*pi*r*r);
}
return 0;
}
很简单的一道几何题目,利用的知识就是初中的,推推角度之间的关系,注意点细节就OK了。
#include <string.h>
#include <algorithm>
#include <iostream>
#include <stdio.h>
#include <cmath>
using namespace std;
const double pi = acos(-1.0);
int main(){
int i,j,k,t;
double angle,l,r,now,now1,d,th1,th2,th3,s1,s2,p,p1,pp;
scanf("%d",&t);
while(t--){
scanf("%lf%lf",&l,&angle);
angle=fabs(angle);
th1=angle/180.0*pi;
th2=45.0/180.0*pi;
th3=(180.0-45.0-angle)/180*pi;
r=sqrt(l*l/2.0);
if(angle>=90.0){
printf("%.2lf\n",pi*r*r);
continue;
}
if(angle==0.0){
printf("%.2lf\n",l*l);
continue;
}
now=r/sin(th3)*sin(th2);
now1=r-now;
p=r/sin(th3)*sin(th1);
p1=l-p;
pp=now1/p;
s1=now*r*sin(th1)/2.0;
s2=s1*pp*pp;
printf("%.2lf\n",l*l-s1*4+s2*4+4*angle/360.0*pi*r*r);
}
return 0;
}
相关文章推荐
- Javascript SHA-1:Secure Hash Algorithm
- [转]可视化的数据结构和算法
- 统计文件中不小于某一长度的单词的个数(泛型算法实现)
- 使用他人的MD5编码类,修改形成密码串
- Extracting Structured Data from Web Pages
- (译)Cocos2d_for_iPhone_1_Game_Development_Cookbook:1.13使用CCTexture2DMutable调换调色盘
- Java中3DES加密
- Refactoring Notes-Refactoring Methods(3)
- 图书馆管理程序~~不过貌似功能!!有空再修修
- trainging contest#2(2011成都现场赛)I BY Hyoga
- C/C++头文件包含内容概览
- 堆栈的应用(1) 平衡符号 C++实现
- 程序员编程艺术第一章、左旋转字符串
- 程序员编程艺术:第三章续、Top K算法问题的实现
- 程序员编程艺术:第四章、现场编写类似strstr/strcpy/strpbrk的函数
- 十四、第三章再续:快速选择SELECT算法的深入分析与实现
- 程序员编程艺术:第七章、求连续子数组的最大和
- 程序员编程艺术:第八章、从头至尾漫谈虚函数
- 程序员编程艺术:第九章、闲话链表追赶问题
- 程序员编程艺术:第十章、如何给10^7个数据量的磁盘文件排序