搜索1003(二分)

题目大意:

分蛋糕,每人一块,不能重叠,求能够分得的最大蛋糕

解题思路:

二分,蛋糕与人数成正比,用二分求最大值

代码:

#include<iostream>
#include<cmath>
#include<algorithm>
using namespace std;
double pi=acos(-1.0);
double pie[10010];
double sum,max;
int main()
{
    int i,n,f,t,radio,num;
    double l,r,mid;
   cin>>t;
    while(t--)
    {
     cin>>n>>f;
      f++;
      max=sum=0;
      for(i=0;i<n;i++)
      {
         cin>>radio;
         pie[i]=pi*radio*radio;
         max=max(pie[i],max);
         sum+=pie[i];
      }
      l=max/f;
      r=sum/f;
      while(l+0.00001<r)
      {
        mid=(l+r)/2;
        num=0;
        for(i=0;i<n;i++)
          num+=(int)(pie[i]/mid);
        if(num<f) r=mid;
        else l=mid;
      }
      printf("%.4lf\n",l);
    }
    return 0;
}
时间: 2024-11-05 22:44:24

搜索1003(二分)的相关文章

搜索插入位置 二分查找

题目: 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引.如果目标值不存在于数组中,返回它将会被按顺序插入的位置. 你可以假设数组中无重复元素. 示例 1: 输入: [1,3,5,6], 5输出: 2示例 2: 输入: [1,3,5,6], 2输出: 1示例 3: 输入: [1,3,5,6], 7输出: 4示例 4: 输入: [1,3,5,6], 0输出: 0 class Solution { public: int searchInsert(vector<int>& n

[NWPU2016][寒假作业][正常版第三组]搜索和二分 N

题意,一条数轴上,告诉你起点和终点,只能向前走1,向后走1,或者走到二倍的现在的位置,每次都耗时一分钟.问从起点到终点的最短时长. 简单地bfs #include <iostream> #include <algorithm> #include <cstdio> #include <map> #include <string> #include <string.h> #include <queue> #include &l

[leetcode] 35. 搜索插入位置(Java)(二分)

35. 搜索插入位置 二分,太简单,没啥好说的 class Solution { public int searchInsert(int[] nums, int target) { if (nums.length == 0) return 0; int i = 0, j = nums.length; int mid = (i + j) / 2; while (i < j) { if (nums[mid] == target) { return mid; } else if (nums[mid]

[ 题解 ] [ 二分+模拟 ] E. Convention

http://codeforces.com/group/NVaJtLaLjS/contest/238203/problem/E 题意: 农夫的N只牛会在N[i]时间到达机场,农夫准备了M辆大巴去接.每辆大巴能载C只牛.(MC≥N) 问对于一只牛最小的最长等待时间是多少. 示例: Input: 6 3 2 1 1 10 14 4 3 Output: 4 你要明确这里要搜索什么.既然题目问的是等待时间,我们就搜索这个等待时间:不要想着怎样给这N个数据套M个区间,太复杂了. 搜索用二分,109不是开玩

杭电ACM分类

杭电ACM分类: 1001 整数求和 水题1002 C语言实验题——两个数比较 水题1003 1.2.3.4.5... 简单题1004 渊子赛马 排序+贪心的方法归并1005 Hero In Maze 广度搜索1006 Redraiment猜想 数论:容斥定理1007 童年生活二三事 递推题1008 University 简单hash1009 目标柏林 简单模拟题1010 Rails 模拟题(堆栈)1011 Box of Bricks 简单题1012 IMMEDIATE DECODABILITY

【转】对于杭电OJ题目的分类

[好像博客园不能直接转载,所以我复制过来了..] 1001 整数求和 水题1002 C语言实验题——两个数比较 水题1003 1.2.3.4.5... 简单题1004 渊子赛马 排序+贪心的方法归并1005 Hero In Maze 广度搜索1006 Redraiment猜想 数论:容斥定理1007 童年生活二三事 递推题1008 University 简单hash1009 目标柏林 简单模拟题1010 Rails 模拟题(堆栈)1011 Box of Bricks 简单题1012 IMMEDI

转载:hdu 题目分类 (侵删)

转载:from http://blog.csdn.net/qq_28236309/article/details/47818349 基础题:1000.1001.1004.1005.1008.1012.1013.1014.1017.1019.1021.1028.1029. 1032.1037.1040.1048.1056.1058.1061.1070.1076.1089.1090.1091.1092.1093. 1094.1095.1096.1097.1098.1106.1108.1157.116

acm课程总结报告

本学期的选修课ACM程序设计进入尾声,首先要总结的当然是感谢老师这类的客套话,良心话是真的谢谢费老耐心认真的教学,确实学到了很多东西,这一点从数据结构这门课的学习中容易看出,轻松很多. 本学期总共学习里四个专题:第一讲贪心算法,第二讲搜索,第三讲动态规划以及现在正在 努力做的图.下面我将以这四个专题为基础分别讲解ACM中所获得知识内容,感悟. 专题一贪心算法. 贪心算法包括计算活动安排的贪心算法,背包问题,删数问题.他的理论基础有三点,1,在问题的每一步选择中都采取在当前状态下最好或者最优的选择

各大oj题目分类(转)

POJ题目分类 | POJ题目分类 | HDU题目分类 | ZOJ题目分类 | SOJ题目分类 | HOJ题目分类 | FOJ题目分类 | 模拟题: POJ1006POJ1008POJ1013POJ1016POJ1017POJ1169POJ1298POJ1326POJ1350POJ1363POJ1676POJ1786POJ1791POJ1835POJ1970POJ2317POJ2325POJ2390POJ1012POJ1082POJ1099POJ1114POJ1642POJ1677POJ1684