LA 3635 Pie】的更多相关文章

Pie My birthday is coming up and traditionally I'm serving pie. Not just one pie, no, I have a number N of them, of various tastes and of various sizes. F of my friends are coming to my party and each of them gets a piece of pie. This should be one p…
有 f + 1 个人来分 n 个圆形派,每个人得到的必须是一整块派,而不是几块拼在一起,并且面积要相同.求每个人最多能得到多大面积的派(不必是圆形). 这题很好做,使用二分法就OK. 首先在读取所有派的半径后处理出所有派的面积,并且记录最大的那个派的面积.然后从 0 ~ maxsize 二分枚举一下,就能得到答案. 此外,这道题最后输出保留小数位数可以是 3, 4, 5,都可以. 附AC代码: 1: #include <stdio.h> 2: #include <math.h> 3…
题意:给出n个圆,分给n+1个人,求每个人最多能够得到多大面积的圆 二分每个人得到的圆的面积 #include<iostream> #include<cstdio> #include<cstring> #include <cmath> #include<stack> #include<vector> #include<map> #include<set> #include<queue> #inclu…
依然是一道二分查找 #include<iostream> #include<cstdio> #include<cmath> using namespace std; const double PI=acos(-1.0); int N,F; ]; bool ok(double area) { ; ;i<N;i++) sum+=floor(r[i]/area); ; } int main() { int T; cin>>T; while(T--) { ci…
题目 有F+1个人来分N个圆形派,每个人得到的必须是一整块派,而不是几块拼在一起,且面积要相同.求每个人最多能得到多大面积的派(不必是圆形). 输入的第一行为数据组数T.每组数据的第一行为两个整数N和F ( 1 ≤ N , F ≤ 10 000 ) :第二行为 N 个整数 ri(1≤ri≤10 000),即各个派的半径. 对于每组数据,输出每人得到的派的面积的最大值,精确到10-3. 思路 我把我的分得大小得取值,用二分来取直,我的递归中sum就是分的份数 份数大了就说明分的每一份都小了, 份数…
题意:为每个小伙伴切糕,要求每个小盆友(包括你自己)分得的pie一样大,但是每个人只能分得一份pie,不能拿两份凑一起的. 做法:二分查找切糕的大小,然后看看分出来的个数有没有大于小盆友们的个数,它又没说每个pie都要分完,分不完的留给工作人员吃嘛. 代码: /* * Author: illuz <iilluzen[at]gmail.com> * Blog: http://blog.csdn.net/hcbbt * File: live3652.cpp * Create Date: 2013-…
https://vjudge.net/problem/UVALive-3635 题意: 有F+1个人要分n个蛋糕,他们得到的蛋糕的面积必须是一样的,但是每个蛋糕必须是整块的蛋糕,而不是有多块蛋糕拼成的,蛋糕的形状也可以不相同. 给出n块蛋糕各自的半径,求他们每个人能得到的蛋糕的最大面积. 思路: 使得最小值最大,那显然是二分. 二分半径,计算面积,然后枚举每个蛋糕,计算每个蛋糕可以分出来的当前面积的蛋糕会有多少个,总数是否大于等于F+1即可. 记住计算个数的时候要用floor向下取整函数,而且l…
题目 https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1636 题意 f+1个人分n个派,要求每个人得到面积相同(但形状可以不一样的)一块.求该最大面积. 思路 为了不像刘书思路,直接选取了当前最大的分块面积. 注意: 最终可能只吃其中的几个,较小的可能不用! 感想 1. 较小的可能不用,谢谢test case 2. 虽然简单…
简单的二分法应用,循环1000次精度就满足要求了. #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<string> #include<cmath> #include<map> #include<set> #include<vector> #include<algorithm>…
题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1636 题意: f+1个人,来分 n 个圆形派,每个人只能从一个派中拿,也就是说,不能从两个里面去拼. 求每个人最大的面积. 分析: 二分. 二分能够得到的最大面积x,怎么判断是否可以分到呢? 把每一个派分成 x,有多少份>=f+1,即可: #include &…