Pie POJ - 3122【贪心、二分】

2023-10-31

该题连接

    这是一道英文题,所以这里就不放原题了,我写一下它的题意

        主人要开一个party,而主人有N个派,他要宴请F个人(也就是要有F+1个人要吃派),但这些人又很挑剔,他们每个人吃派只吃一种派,并且还不能容忍其他人吃的派比自己多。

    所以这就是一道二分,我们假设每个人吃到的派的体积为v,那么对于给定的每一个派Ai,我们切割成v的体积可以切割出(Ai/v)个,如果对于切割得到的数目num,假如num<F+1,则相当于不够吃,要减小分配的体积,反之亦正确。然后这里的判断有个小插曲,我们用到“num<F+1”而不是“num>F+1”来判断是有原因的,这和它的条件有着密不可分的关系,因为当num==F+1的时候,也是可以在尝试往下继续分的。

二分操作主要代码:

        double l=0, r=maxn, mid=(l+r)/2;
        while(r-l>0.000001)
        {
            mid=(l+r)/2;
            int num=0;
            for(int i=1; i<=N; i++)
            {
                num+=(int)(a[i]/mid);
            }
            if(num<F)
            {
                r=mid;
            }
            else
            {
                l=mid;
            }
        }

AC代码:

#include <iostream>
#include <cstdio>
#include <algorithm>
#define pi 3.14159265358979
using namespace std;
int N,F;
double a[10005];
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d %d",&N, &F);
        F++;
        int ri;
        double maxn=-1;
        for(int i=1; i<=N; i++)
        {
            scanf("%d",&ri);
            a[i]=pi*ri*ri;
            if(maxn<a[i])maxn=a[i];
        }
        double l=0, r=maxn, mid=(l+r)/2;
        while(r-l>0.000001)
        {
            mid=(l+r)/2;
            int num=0;
            for(int i=1; i<=N; i++)
            {
                num+=(int)(a[i]/mid);
            }
            if(num<F)
            {
                r=mid;
            }
            else
            {
                l=mid;
            }
        }
        printf("%.4lf\n",r);
    }
    return 0;
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Pie POJ - 3122【贪心、二分】 的相关文章

  • Balanced Ternary String【Codeforces Round #531 (Div. 3)D】【贪心、构造】

    题目链接 一道简单的构造 我们可以分成几个状态 因为所有的状态只有8个 所以 直接写每个状态即可 哎 被hack了 烦啊 谁让我写的好烂 好菜啊 呜呜呜 include
  • 包裹快递

    包裹快递 背景 小K成功地破解了密文 但是乘车到X国的时候 发现钱包被偷了 于是无奈之下只好作快递员来攒足路费去Orz教主 描述 一个快递公司要将n个包裹分别送到n个地方 并分配给邮递员小K一个事先设定好的路线 小K需要开车按照路线给的地点
  • 【BZOJ 4069】 [Apio2015]巴厘岛的雕塑

    4069 apio2015 巴厘岛的雕塑 Time limit 1000 ms Memory limit 65536 KB Description The province of Bali has many sculptures locat
  • 【LeetCode】二分法总结

    二分法总结 二分模板 找第一个大于等于target的 找第一个大于target的 33 搜索旋转排序数组 34 在排序数组中查找元素的第一个和最后一个位置 木头切割 二分模板 满足条件就写l mid 或 r mid 找第一个大于等于targ
  • 【NOIP 2004 提高组】合并果子

    题就自己找啦 各大OJ上应该都有 题目 题目描述 在一个果园里 多多已经将所有的果子打了下来 而且按果子的不同种类分成了不同的堆 多多决定把所有的果子合成一堆 每一次合并 多多可以把两堆果子合并到一起 消耗的体力等于两堆果子的重量之和 可以
  • 【二分+贪心】用 N 根绳子裁剪出 M 根等长绳子

    有 N 根绳子 第 i 根绳子的长度为 l i 现在需要 M 根等长的绳子 你可以对这 N 根绳子进行任意裁剪 不能拼接 请你计算出这 M 根绳子最长的长度 输入描述 第一行包括两个整数 N M 含义如题所述 1 lt N M lt 100
  • Array merging

    Array merging 题意 给出两个长度为n的数组a b 现在每次可以取出任意一个数组的第一个元素 放到c数组的后面 c数组一开始为空 求c数组连续相等的最长子串长度 思路 这里可以用两个map把a b数组每个元素对应的连续相等的最长
  • Polycarp and Div 3【Codeforces Round #496 (Div. 3)【D题】】【贪心】

    应该说是今天凌晨的吧 第一次打Code Forces 懵懵懂懂的 不过感觉还是良好 做了几道签到题 难题还是没有那个水准去做 Polycarp likes numbers that are divisible by 3 He has a h
  • [NOI2010]超级钢琴【RMQ+贪心+堆】

    题目链接 超级棒的一道题 解这道题 需要分一下几步来看 取的是连续段 我们可以对每个可能起点去知道它的最大可能解 起点begin 最大可行解一定是begin L 1 begin R 1中的一个 如果每次都是取最大的话 那么下一个同起点的一定
  • 紫书《算法竞赛入门经典》

    紫书 算法竞赛入门经典 题目一览 第3章 数组和字符串 例题 UVA 272 TEX Quotes UVA 10082 WERTYU UVA 401 Palindromes UVA 340 Master Mind Hints UVA 158
  • HDOJ 1052 Tian Ji -- The Horse Racing

    Tian Ji The Horse Racing Time Limit 2000 1000 MS Java Others Memory Limit 65536 32768 K Java Others Total Submission s 2
  • River Jumping【贪心+模拟】

    题目链接 我们可以贪心的从前往后 每次选最接近的且满足条件的这样的贪心 然后从后往前的时候 就是直接用倒着一个个判断是否合法即可 include
  • Bracket Coloring

    Bracket Coloring 题意 给出一个括号序列 定义漂亮序列为匹配括号序列或者反转之后是匹配括号序列的序列 现在要求染色 使得相同颜色的括号组成漂亮序列 问最少需要多少种颜色即每个括号染的颜色 思路 这里可以用栈来匹配括号序列 因
  • bzoj1110 [POI2007]砝码Odw 贪心+进制拆分

    题意就不说了 一开始居然在想直接dp 看到是整数倍我的内心居然毫无波动 真是傻的不行了 因为是整数倍 那我们可以把一个容器用砝码的重量做为进制拆分 然后从小到大一个个填就可以了 贪心策略肯定是最优的 具体如何拆分看hzwer www htt
  • (今日头条面试题)剪绳子(二分带详细思路)

    有N根绳子 第i根绳子长度为Li 现在需要M根等长的绳子 你可以对N根绳子进行任意裁剪 不能拼接 请你帮忙计算出这M根绳子最长的长度是多少 输入格式 第一行包含2个正整数N M 表示原始绳子的数量和需求绳子的数量 第二行包含N个整数 其中第
  • Can you solve this equation?(二分)

    Problem Description Now given the equation 8 x 4 7 x 3 2 x 2 3 x 6 Y can you find its solution between 0 and 100 Now ple
  • ArabellaCPC 2019 I:Bashar and Hamada 贪心

    Bashar and Hamada 给你一个长度为 n 的数组 选k个数 使F ai aj k个数 i j 求k 2 3 n时 F的最大值 首先n 2时 肯定选择数组中的最大值和最小值 这样F2 max min F2最大 n 3时 在F2的
  • HDU--1050:Moving Tables (贪心)

    1 题目源地址 http acm hdu edu cn showproblem php pid 1050 2 解题思路 将每个输入的起始房间和结束房间转换为房间前面的区间 按区间起始位置从小到大排序 首先取第一个区间 后续如果有区间的起始位
  • BZOJ4868 [Shoi2017]期末考试

    YY一下的话感觉代价关于最晚出分时间是一个单峰函数 三分最晚的出分时间 然后贪心一下算代价就行 如果A gt B就只用B就行了 要不然的话出分时间小于当前限制的都可以随便往后调直到到达限制 那么先尽量用A 调不到限制以内的再用B即可 inc
  • 贪心+二分解决最大值最小、最小值最大问题

    在刷题时 总会遇到求最大值最小 最小值最大问题 也许它会暗喻是这样的一个问题 对于这样的一个问题 你会发现用dp和枚举都会超时超内存 或者说很麻烦 所以这是一个比较简单的解题方式 二分逼近思想 对于难以直接确定解的问题 采取二分枚举 检验的

随机推荐

  • 深度学习笔记2:手写一个单隐层的神经网络

    欢迎关注天善智能 我们是专注于商业智能BI 人工智能AI 大数据分析与挖掘领域的垂直社区 学习 问答 求职一站式搞定 对商业智能BI 大数据分析挖掘 机器学习 python R等数据领域感兴趣的同学加微信 tsaiedu 并注明消息来源 邀
  • layout_weight属性的用法和意义

    一直没理解在LinearLayout中的layout weight属性的意义 使用的时候都是将子控件的layout width或者layout height设置为0 然后在设置layout weight的权重值 以至于在被问到如果设置了la
  • s3.GLSL学习之着色器基础

    着色器 着色器程序看起来确实和C语言非常类似 它们从入口点main函数开始 并且使用同样的字符集和注释约定 以及很多相同的处理指令 着色器是运行在GPU上的小程序 这些小程序为图形渲染管线的一个特定部分而运行 从基本意义上来说 着色器不是别
  • QT踩坑记录2-多线程信号与槽

    错误输出 无错误输出 但是声明了信号的连接 但是无法使用 程序中就是无命令 介绍 QT 典型程序 include
  • Vue技术之经典案例todolist

    文章目录 前言 案例效果展示 案例功能介绍 案例主要技术 案例搭建过程 案例总结 前言 todolist案例在学习很多技术上都很适合新手练手 在这篇文章中将用Vue技术来实现该案例 此外感兴趣的小伙伴可以点击下方链接来获取案例源码哦 案例源
  • 鸿蒙第二批升级时间,鸿蒙系统第二批升级名单_鸿蒙系统第二批有哪些手机可以升级...

    鸿蒙系统现在已经是开通了第二批内测名单的报名了 听说第二批又增加了不少适配机型 于是很多第一批没有更新的小伙伴好像重现燃起了希望 那么第二批升级名单中都有哪些机型呢 我们一起来了解一下吧 1 鸿蒙系统第二批升级名单 这一期鸿蒙OS 2 0开
  • 对接支付宝服务商当面付&手机网页支付

    一 前期准备 SpringBoot对接支付宝当面付和手机网站支付 springboot 支付宝当面付 Biubiubiuexo的博客 CSDN博客 配置成功后获得到我们开发需要的 支付宝公钥 商户私钥 应用ID 服务商开通链接 支付宝服务商
  • qt信号发送间隔短而槽耗时多_Qt的信号和槽机制(Signals & Slots)

    信号和槽 Signals Slots 用于对象之间的通信 信号和槽机制是Qt的核心特性 可能也是与其他框架所提供的特性最不同的部分 信号和槽是由Qt的元对象系统 The Meta Object System 实现的 产生背景 在GUI编程中
  • spring boot整合mybatis查询数据库返回Map字段为空不返回解决

    1 出现问题原因 原因1 mybatis的配置即mapper返回映射配置 原因2 jackson的配置即 ResponseBody序列化配置 2 解决方式 步骤1 解决原因1 mybatis configuration call sette
  • scss的用法

    SCSS处理的了解和使用 官方文档 首先注意 这里的sass和我们的scss是什么关系 sass和scss其实是 一样的 css预处理语言 SCSS 是 Sass 3 引入新的语法 其后缀名是分别为 sass和 scss两种 SASS版本3
  • la是什么牌子_MLB帽子为什么这么火?!

    说到潮牌 大家想到的一定是Champion Supreme这些品牌 实际上除了这几个品牌 还有许多潮流品牌非常值得购买 MLB就是其中之一 那为什么MLB能在火出圈的同时还能让这么多人都爱不释手 随着大家对着潮流的关注 走街上10个人中就有
  • mysql 插入更新数据

    insert into insert into 语句进行插入时 如果插入的字段包含 主键或者唯一索引字段 那么 1 主键或唯一索引 已存在 则插入失败 1062 Duplicate entry 1 for key PRIMARY 2 只有主
  • python seaborn的常用方法及小例子,免费开源!

    楼主是为了方便自己以后使用 希望可以给大家带来帮助 喜欢的点赞支持 谢谢 seaborn简介 seaborn同matplotlib一样 也是Python进行数据可视化分析的重要第三方包 但seaborn是在 matplotlib的基础上进行
  • 如何在TensorFlow中通过深度学习构建年龄和性别的多任务预测器

    by Cole Murray 通过科尔 默里 Cole Murray In my last tutorial you learned about how to combine a convolutional neural network a
  • 变量的生命周期和作用域

    变量的生命周期和作用域 内存区域的划分 变量的生命周期和作用域 放大 全局变量 定义在函数外部的变量 默认值为0 static 静态 值可以变 主要用于修饰函数 本函数只能被本文件中其他函数使用 局部变量 定义在函数内部的变量 包括形参 默
  • 软件测试缺陷等级划分_豪之诺软件测试告诉你Bug有哪些分类和等级?

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 一 bug的定义 软件的bug 狭义指软件程序的漏洞或缺陷 广义指测试工程师或用户提出的软件可改进的细节 或与需求文档存在差异的功能实现等 对应三个测试目的 3个为了 1 为了发现程序的代码或业
  • 聊天系统服务器端类图,使用Java多线程来实现多人聊天室 附实例代码

    群聊天就是一个比较典型的多人聊天平台 我们总会拉几个朋友 或是同学 同事建立一个群聊 在里面聊聊天 讨论学习工作等等 那么多人聊天具体是怎么实现的呢 下面 将通过Java的多线程来实现多人聊天室的效果 1 前言 程序实现基于星型结构 服务器
  • 日常BUG:MOC‘ing 宏编译

    日常BUG MOC ing 宏编译 问题 qml中调用C 后台函数 该函数使用宏包围 如 ifdef MARCO Q INVOKABLE void xxx1 Q INVOKABLE void yyy2 endif 使用msbuild时 mo
  • Linux:C/Socket多路复用select

    版权声明 转载时请以超链接形式标明文章原始出处和作者信息及本声明 http kifzt blogbus com logs 4152790 html Linux C Socket多路复用select 小全 Submitted byELFero
  • Pie POJ - 3122【贪心、二分】

    该题连接 这是一道英文题 所以这里就不放原题了 我写一下它的题意 主人要开一个party 而主人有N个派 他要宴请F个人 也就是要有F 1个人要吃派 但这些人又很挑剔 他们每个人吃派只吃一种派 并且还不能容忍其他人吃的派比自己多 所以这就是