正式赛-ZZULIOJ-1882- 蛤玮的魔法
来源:互联网 发布:linux 脚本 while 编辑:程序博客网 时间:2024/04/29 05:48
Contest - “玲珑杯”郑州轻工业学院第八届ACM程序设计大赛暨河南高校邀请赛-正式赛
Problem I: 蛤玮的魔法
Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 249 Solved: 72
SubmitStatusWeb Board
Description
为了成为魔法少女,蛤玮正在学习画魔法阵,他首先画了一个正n边形,查阅魔法书后蛤玮发现书上要求魔法阵的面积不能超过L,他很头疼,因为用尺规作这个正n边形花了他好大经历,他不想重新画一边,于是他想了个好主意,把每条边的中点依次连起来,就能得到一个缩小的正n边行.现在蛤玮想知道他需要按着个方法缩小多少次才能合乎魔法书上的要求.
Input
T(1<=T<=100),表示数据组数.
每组数据三个整数n(3<=n<=10),a(1<=a<=100),L(1<=L<=1000),其中a表示蛤玮画的正n边行的边长,n,L如题中描述.
数据保证[L-1e-5,L+1e-5]内答案唯一.
Output
每组数据输出一个整数,表示蛤玮操作的次数.
Sample Input
1
4 2 3
Sample Output
1
计算几何问题,老老实实三角函数套进去,不要想着找规律就不会出错
代码
#include<stdio.h>#include<math.h>#include<iostream>#include<algorithm>#include<string.h>#define PI acos(-1.0)//定义using namespace std;int main(){ int t; double n,a,l; double s,s1,a1,l1; double x1,x2,x3,x4; scanf("%d",&t); while(t--) { scanf("%lf%lf%lf",&n,&a,&l); x1=(PI/n)*2; x2=(PI-x1)/2; x3=2*x2; x4=(PI-x3)/2; l1=a*sin(x2)/sin(x1); s=0.5*sin(x1)*l1*l1*n; int cnt=0; while(s-l>1e-6)//精度控制 { a1=a/2; s1=0.5*sin(x3)*a1*a1; a=a1*sin(x3)/sin(x4); s-=n*s1; cnt++; } printf("%d\n",cnt); } return 0;}
0 0
- 正式赛-ZZULIOJ-1882- 蛤玮的魔法
- ZZULIOJ 1882: 蛤玮的魔法【数学】
- zzulioj 1882: 蛤玮的魔法 (数学几何)水
- ZZULIOJ 1882: 蛤玮的魔法 (计算几何)
- ZZULIOJ 1882 蛤玮的魔法【计算几何】
- 正式赛-ZZULIOJ-1878-蛤玮准备礼物
- 正式赛-ZZULIOJ-1879-蛤玮买好了礼物
- 正式赛-ZZULIOJ-1883-蛤玮当上主席
- 正式赛-ZZULIOJ-1881-蛤玮的机房(并查集)
- 正式赛-ZZULIOJ-1874-蛤玮学计网
- 正式赛-ZZULIOJ-1877-蛤玮打扫教室(裸线段树)
- zzulioj 1875 蛤玮的财宝 ( “玲珑杯”郑州轻工业学院第八届ACM程序设计大赛暨河南高校邀请赛-正式赛 双线dp)
- 蛤玮的魔法
- ZZULIOJ 1881: 蛤玮的机房
- zzuoj1882: 蛤玮的魔法
- 郑大第九届校赛-正式赛-zzulioj-1815-easy problem
- 郑大第九届校赛-正式赛-zzulioj-1812-sort
- 郑轻oj 1882 蛤玮的魔法
- HiveQL:索引
- R.NET用于Excel Add-In的多实例(multi-Instance)问题及解决方法(2)
- 远程查询
- Select模型原理
- 其他文件格式及压缩方法
- 正式赛-ZZULIOJ-1882- 蛤玮的魔法
- CentOS 7
- NSMethodSignature和NSInvocation的使用
- Leetcode_104_Maximum Depth of Binary Tree
- Android 内存分析(简)
- Java中方法重写与方法重载
- Android项目开发实战之使用Fragment和FragmentTabHost搭建底部菜单(一)
- C++:undefined reference to vtable 原因与解决办法 [转]
- NSMethodSignature和NSInvocation使用