NYOJ 869 切蛋糕

切蛋糕

时间限制:1000 ms  |  内存限制:65535 KB

难度:3

描述

有如下图半径为R的圆形蛋糕,被切一刀后(图中红色直线),分成两个部分(黄色和绿色),已知其比例为r,求刀痕长度(图中红色直线)。

输入
输入包括多组测试数据,包括一个整数R(1<=R<=1000),和一个浮点数r(0<r<1),精确到第四位小数。
输出
对于每组测试用例,输出一个浮点数,代表刀痕的长度,保留二位小数。
样例输入
1000 0.5000
500 0.6183
样例输出
1928.53
982.49
思路:二分加贪心
#include<iostream>
using namespace std;
#include<cstdio>
#include<cmath>
#include<cstdlib>
const double PI=acos(-1);

int main()
{
	double rate,thita,sa,sb,ss,sleft,sright;
	double low,high,l,r;
	while(cin>>r>>rate)
	{
	  ss=r*r*PI;
	  low = 0.0000001,high = 2*r;
	  while(low<=high)
	  {
	     l=(low+high)/2;
		 thita = asin(l/2/r);
		 sb=r*r/2.0*sin(2*thita);
		 sa = r*r*thita;
		 sleft = sa - sb;
		 sright = ss - sleft;
		 if(sleft>=sright*rate)
			 high = l-0.00001;
		 else low = l+0.00001;
	  }
	  printf("%0.2f\n",l);
	}
 return 0;
}        

NYOJ 869 切蛋糕,布布扣,bubuko.com

时间: 2024-10-12 14:22:21

NYOJ 869 切蛋糕的相关文章

hdu 切蛋糕

1:切蛋糕问题 Problem Description 或许你曾经牢骚满腹 或许你依然心怀忧伤 或许你近在咫尺 或许你我天各一方对于每一个学子 母校  永远航行在 生命的海洋今年是我们杭电建校五十周年,这是一个值得祝福的日子.我们该送给母校一个怎样的礼物呢?对于目前的大家来说,最好的礼物当然是省赛中的好成绩,我不能参赛,就送给学校一个DOOM III球形大蛋糕吧,这可是名牌,估计要花掉我半年的银子呢.想象着正式校庆那一天,校长亲自操刀,把这个大蛋糕分给各地赶来祝贺的校友们,大家一定很高兴,呵呵,

TZOJ 3042 切蛋糕(并查集)

描述 KK是个心灵手巧的好姑娘,她做了一个大蛋糕请她的好朋友们来品尝.这个蛋糕分成n×n个正方形小格,每个小格包含一块水果.KK要把蛋糕切成若干块,显然她不会破坏任意一个小格.无聊的某同学在她切蛋糕时不停地问她同一种问题:某两个小格是否还在同一块蛋糕里?例如下图中,KK从(1,1)切到(4,1),又从(1,1)切到(1,4),从而将蛋糕分成了两块.然后又从(2,1)切到(2,3),从(1,3)切到(2,3),于是把整个蛋糕分成了三块.其中小格(2,2)只和小格(2,3)连通,与其它所有小格不连通

NOIP模拟:切蛋糕(数学欧拉函数)

题目描述  BG 有一块细长的蛋糕,长度为 n. 有一些人要来 BG 家里吃蛋糕, BG 把蛋糕切成了若干块(整数长度),然后分给这些人. 为了公平,每个人得到的蛋糕长度和必须相等,且必须是连续的一段. 但是, BG 并不知道要有多少人来. 他只知道, 来的人数为n的约数,且小于n. 显然把蛋糕平均分成 n 块一定能满足要求.但是, BG 想要分出的块数尽量少.现在 BG 想知道,他要把蛋糕分成至少多少块,才能使得不管多少人来都能满足要求. 输入格式 输入文件名为 cake.in. 输入共一个整

1648切蛋糕

题意:将一球形蛋糕切N刀,最多可切多少块. 分析:推规律 1 #include<iostream> 2 #include<cstdio> 3 #include<string> 4 #include<cstring> 5 #include<set> 6 #include<map> 7 #include<algorithm> 8 #include<cstdlib> 9 #include<vector>

黑皮切蛋糕

描述 众所周知,黑皮出生与1000年01月01日,那天乌云密布,电闪雷鸣,在黑光划破夜空的一瞬间,黑皮准确无误的生成了男孩.不妨给大家说声:由于他天生体黑,故取名为黑皮.^-^     为了庆祝黑皮的1006岁生日,也就是2006年01月01日.校长为他在学校里举行一个名为{天造奇才}的大型庆祝活动.邀请全校的师生及其家属们都参加.考虑到当时人数相当庞大,黑皮的好友小佳佳特地为他从美国进口了个超级无敌五香麻辣阴阳五行令万千饿鬼为之绝倒的巨无霸大蛋糕1号.供到场的所有人享用.     黑皮也考虑到

切蛋糕(分割)

相当于圆上N条弦能把圆分成多少个区域了,N=1时,2用A(K)表示N=K时的区域数,再多一条弦时,应该总能做到与其它K条弦都相交,K个交点把这条弦分成K+1段,每一段都把一区域一分为二,相当于增加区域K+1,有A(K+1)=A(K)+K+1规律如2,4,7,11……即N(N+1)/2 + 1 (我的补充:圆形可以改为任意突多边形.) 如果可以横向切,思路还是一样,做到新增平面都与前K个平面相交,且每条交线都不平行,这样K条交线把新增平面分为K(K+1)/2 + 1个部分,每部分把一个空间区域一分

切蛋糕

传送门 题目描述 今天是小Z的生日,同学们为他带来了一块蛋糕.这块蛋糕是一个长方体,被用不同色彩分成了N个相同的小块,每小块都有对应的幸运值. 小Z作为寿星,自然希望吃到的第一块蛋糕的幸运值总和最大,但小Z最多又只能吃M小块(M≤N)的蛋糕. 吃东西自然就不想思考了,于是小Z把这个任务扔给了学OI的你,请你帮他从这N小块中找出连续的k块蛋糕(k≤M),使得其上的幸运值最大. 输入输出格式 输入格式: 输入文件cake.in的第一行是两个整数N,M.分别代表共有N小块蛋糕,小Z最多只能吃M小块.

uva 1629切蛋糕(dp)

有一个n行m列的网格蛋糕,上面有一些樱桃,求使得每块蛋糕上都有一个樱桃的切割最小长度 思路:dp. #include<cstdio> #include<cstring> #include<cmath> #include<cstdlib> #include<iostream> #include<algorithm> #include<vector> #include<map> #include<queue&

P1714 切蛋糕

题目描述 今天是小Z的生日,同学们为他带来了一块蛋糕.这块蛋糕是一个长方体,被用不同色彩分成了N个相同的小块,每小块都有对应的幸运值. 小Z作为寿星,自然希望吃到的第一块蛋糕的幸运值总和最大,但小Z最多又只能吃M小块(M≤N)的蛋糕. 吃东西自然就不想思考了,于是小Z把这个任务扔给了学OI的你,请你帮他从这N小块中找出连续的k块蛋糕(k≤M),使得其上的幸运值最大. 输入格式 输入文件cake.in的第一行是两个整数N,M.分别代表共有N小块蛋糕,小Z最多只能吃M小块. 第二行用空格隔开的N个整