Problem 1009: 蛤玮的魔法

Time Limits:  1000 MS   Memory Limits:  65536 KB

64-bit interger IO format:  %lld   Java class name:  Main

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

Output for Sample Input

1

Hint

Author

2016郑州轻工业学院校赛

以前too naive,暴力模拟写的,评测机估计比较快就过了……,实际上这题应该是二分

代码:

#include<iostream>
#include<algorithm>
#include<cstdlib>
#include<sstream>
#include<cstring>
#include<cstdio>
#include<string>
#include<deque>
#include<stack>
#include<cmath>
#include<queue>
#include<set>
#include<map>
using namespace std;
#define INF 0x3f3f3f3f
#define MM(x,y) memset(x,y,sizeof(x))
#define LC(x) (x<<1)
#define RC(x) ((x<<1)+1)
#define MID(x,y) ((x+y)>>1)
typedef pair<int,int> pii;
typedef long long LL;
const double PI=acos(-1.0);
double n,a,L,angle;
double area(const double &nn,const double &a)
{return n*a*a/(4*tan(PI/n));
}
double dpow(double a,int b)
{double r=1;while (b){if(b&1)r*=a;a*=a;b>>=1;}return r;
}
int main(void)
{int tcase;int ans,mid,l,r;scanf("%d",&tcase);while (tcase--){scanf("%lf%lf%lf",&n,&a,&L);angle=(n-2)*180/n;double rate=sin((angle/360)*PI);l=0,r=3000000;while (l<=r){int mid=(l+r)>>1;double temp=area(n,a*dpow(rate,mid));if(temp<L){r=mid-1;ans=mid;} elsel=mid+1;}printf("%d\n",ans);}return 0;
}

转载于:https://www.cnblogs.com/Blackops/p/5766277.html

NBOJv2 Problem 1009 蛤玮的魔法(二分)相关推荐

  1. “玲珑杯”郑州轻工业学院第八届ACM程序设计大赛Problem G: 蛤玮点菜

    Problem G: 蛤玮点菜 Time Limit: 2 Sec  Memory Limit: 128 MB Submit: 320  Solved: 31 SubmitWeb Board Desc ...

  2. Problem 1004: 蛤玮打扫教室(区间覆盖端点记录)

    Problem 1004: 蛤玮打扫教室 Time Limits:  1000 MS   Memory Limits:  65536 KB 64-bit interger IO format:  %l ...

  3. 正式赛-ZZULIOJ-1882- 蛤玮的魔法

    Contest - "玲珑杯"郑州轻工业学院第八届ACM程序设计大赛暨河南高校邀请赛-正式赛 Problem I: 蛤玮的魔法 Time Limit: 1 Sec Memory L ...

  4. ZZULI 1876: 蛤玮的项链 Hash + 二分

    Time Limit: 6 Sec  Memory Limit: 128 MB Submit: 153  Solved: 11 SubmitStatusWeb Board Description 蛤玮 ...

  5. 蛤玮打扫教室(区间覆盖)

    1877: 蛤玮打扫教室 Time Limit: 2 Sec  Memory Limit: 128 MB Submit: 332  Solved: 71 SubmitStatusWeb Board D ...

  6. zstu新生赛 Problem A: Baby Coins(折半枚举+二分)

    Problem A: Baby Coins Time Limit: 1 Sec Memory Limit: 128 MB Submit: 274 Solved: 29 Description Baby ...

  7. 蛤玮学计网 -- 简单的判断ip

    心累 , 狗日的想了好多数据 , ......啥也不说了 我去哭一会 .  1 #include<stdio.h> 2 #include<string.h> 3 #includ ...

  8. HDU 2426 Interesting Housing Problem [N!=M的最佳二分匹配]

    题意:有N个学生,M个房间,每个学生对部分房间进行评价,评价值有正有负,现安排房间,要求学生不能入住其不喜欢的房间,即只能入住评价值非负的房间,求一种方案使总评价值最大. 思路:最佳匹配模板KM,过程 ...

  9. Problem 1009 - 小红帽

    /*有一群喜欢带小红帽的家伙举行了一场别开生面的聚会,然而某些人被邪恶的WM讲帽子上涂了大灰狼的图标,可是每个人看不到自己头上的帽子有没有被涂,他们只能看到其他人头上的帽子是不是大灰狼的图案,现在告诉 ...

最新文章

  1. 15分钟实现AI端计算模型训练、加速与部署 | 百度EasyDL公开课
  2. 《Adobe Illustrator大师班:经典作品与完美技巧赏析》—Bree Léman
  3. PHP的composer报错 failed loading cafile stream: `C:\Users\Administrator\Ap pData\Local\Temp\opeB1C9.t
  4. java的equals方法_Java Vector equals()方法与示例
  5. 测量程序运行时间的几个函数
  6. github 建立博客
  7. wps mysql ubuntu_Ubuntu 安装WPS
  8. 软件开发的一些感想(五年工作总结版)
  9. 《郭论—捡史》郭德纲/著 读后得
  10. JAVA:18位身份证号码验证工具类(识别性别和生日、计算年龄)
  11. 手把手教python发送邮件
  12. 磁盘清理软件:BlueHarvest for Mac
  13. 今天,我们求知若渴、虚心若愚(附技术PPT)
  14. 二、使用Stream流的方式完成过滤操作
  15. CTF之web学习记录 -- 命令注入
  16. jstack排查cpu使用率过高
  17. 规划过程组-项目管理-PMP
  18. 程序员每天累成狗,是为了什么
  19. GeneXus创建第一个项目
  20. WPF 从最底层源代码了解 AllowsTransparency 性能差的原因

热门文章

  1. 大数据测试指标(二)
  2. 手动btsoft_ubuntu
  3. linux中测端口通讯nc,linux命令之 - nc 测试端口的连通
  4. 2020年9月23日 晴(补2020年9月22日 晴)
  5. 你的程序需要具备“自检”能力
  6. C语言初阶作业题-数组
  7. 关于如何通过Swap函数交换两个变量的值
  8. VM Workstation 16 Pro 下载安装以及下载配置Linux虚拟机(操作如下)
  9. 父与子的编程之旅--easygui无法使用
  10. R 和 Python 可以兼得吗?