NBOJv2 Problem 1009 蛤玮的魔法(二分)
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
以前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;
}
else
l=mid+1;
}
printf("%d\n",ans);
}
return 0;
}
NBOJv2 Problem 1009 蛤玮的魔法(二分)的更多相关文章
- NBOJv2——Problem 1002: 蛤玮的财宝(多线程DP)
Problem 1002: 蛤玮的财宝 Time Limits: 1000 MS Memory Limits: 65536 KB 64-bit interger IO format: %ll ...
- Problem 1004: 蛤玮打扫教室(区间覆盖端点记录)
Problem 1004: 蛤玮打扫教室 Time Limits: 1000 MS Memory Limits: 65536 KB 64-bit interger IO format: %l ...
- ZZULI 1876: 蛤玮的项链 Hash + 二分
Time Limit: 6 Sec Memory Limit: 128 MBSubmit: 153 Solved: 11 SubmitStatusWeb Board Description 蛤玮向 ...
- NBOJv2 1004 蛤玮打扫教室(线段树区间更新区间最值查询)
Problem 1004: 蛤玮打扫教室 Time Limits: 1000 MS Memory Limits: 65536 KB 64-bit interger IO format: %l ...
- 线段树区间覆盖 蛤玮打扫教室(zzuli 1877)
http://acm.zzuli.edu.cn/zzuliacm/problem.php?id=1877 Description 现在知道一共有n个机房,算上蛤玮一共有m个队员,教练做了m个签,每 ...
- Gym 100531H Problem H. Hiking in the Hills 二分
Problem H. Hiking in the Hills 题目连接: http://codeforces.com/gym/100531/attachments Description Helen ...
- uva--11991 - Easy Problem from Rujia Liu?(sort+二分 map+vector vector)
11991 - Easy Problem from Rujia Liu? Though Rujia Liu usually sets hard problems for contests (for e ...
- Codeforces Round #425 (Div. 2) Problem C Strange Radiation (Codeforces 832C) - 二分答案 - 数论
n people are standing on a coordinate axis in points with positive integer coordinates strictly less ...
- 51nod 1640 天气晴朗的魔法 二分 + 克鲁斯卡算法(kruskal算法) 做复杂了
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1640 一开始想的时候,看到要使得最大值最小,那这样肯定是二分这个最大值了 ...
随机推荐
- AJAX,JSON搜索智能提示
效果 开发结构参考AJAX,JSON用户校验 主要有两个核心文件 1,处理输入字符,进行后台搜索的servlet Suggest.java package org.guangsoft.servlet; ...
- nodeJS文件路径总结
文件夹目录F:* test1* tes2* test3* test4* a.html*//例句fs.readFile('../../../a.html', function (err, html) { ...
- sqlserver临时启用和关闭约束
select 'ALTER TABLE [' + b.name + '] NOCHECK CONSTRAINT ' + a.name +';' as 禁用约束 from sysobje ...
- 一个非常简单的返回局部字符数组的C语言程序, 请问其输出结果?
以下是该无聊的程序: #include <stdio.h> #include <string.h> char* get_str() { int x[10]; c ...
- poj 3928 树状数组
题目中只n个人,每个人有一个ID和一个技能值,一场比赛需要两个选手和一个裁判,只有当裁判的ID和技能值都在两个选手之间的时候才能进行一场比赛,现在问一共能组织多少场比赛. 由于排完序之后,先插入的一定 ...
- ☆ fragment和fragmentactivity解析 (转)
一.为什么要使用Fragment 1.当我们需要动态的多界面切换的时候,就需要将UI元素和Activity融合成一 个模块.在2.3中我们一般通过各种Activity中进行跳转来实现多界面的跳转和单 ...
- eclipse提示信息设置和提示信息操作
1.提示信息设置 windows->preference->java->Editor->content Assist->Advance,选择需要提示的内容即可.如图所示: ...
- cmd.ExecuteNonQuery();和cmd.ExecuteScalar();
C#...cmd.ExecuteNonQuery();是返回执行命令后影响的参数 返回符合你条件的所有语句,如果你要数据库里某张表的数据,说执行这个命令后他返回的是就是这张表的全部数据cmd.Exec ...
- HDU3251 Being a Hero(最小割)
题目大概一个国家n个城市由m条单向边相连,摧毁每条边都有一个费用.现在你可以选择所给的f个城市中的若干个,每个城市选择后都有一定的价值,但首都1号城市必须到达不了你选择的城市,因为你可能需要摧毁一些边 ...
- POJ1191 棋盘分割(DP)
化简一下那个方差得到:$$\sqrt\frac{(\Sigma_{i=1}^nx_i)-n\bar x^2}{n}$$ 除了$\Sigma_{i=1}^nx_i$这部分未知,其余已知,而那部分显然越大 ...