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【贪心、二分】 的相关文章

  • P1102 A-B 数对

    include
  • Best Binary String

    Best Binary String 题意 给一个包含0 1 的字符串 可以换成0或1 要求换完之后使得成本最小 二进制字符串的成本定义为按非降序对字符串进行排序所需的 反转字符串的任意连续子字符串 形式的最小操作数 思路 因为每次操作是反
  • 包裹快递

    包裹快递 背景 小K成功地破解了密文 但是乘车到X国的时候 发现钱包被偷了 于是无奈之下只好作快递员来攒足路费去Orz教主 描述 一个快递公司要将n个包裹分别送到n个地方 并分配给邮递员小K一个事先设定好的路线 小K需要开车按照路线给的地点
  • POJ--1328:Radar Installation (贪心)

    1 题目源地址 http poj org problem id 1328 2 解题思路 该题题意是为了求出能够覆盖所有岛屿的最小雷达数目 每个小岛对应x轴上的一个区间 在这个区间内的任何一个点放置雷达 则可以覆盖该小岛 区间范围的计算用 x
  • 紫书《算法竞赛入门经典》

    紫书 算法竞赛入门经典 题目一览 第3章 数组和字符串 例题 UVA 272 TEX Quotes UVA 10082 WERTYU UVA 401 Palindromes UVA 340 Master Mind Hints UVA 158
  • River Jumping【贪心+模拟】

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

    HDU 6660 题目链接 这道题主要就是讲我们从任意点出发 每次走的都是没走过并且 曼哈顿距离大于1小于3的点 然后问能不能覆盖完整幅图 这里就想到一个很经典的问题 4399小游戏除草游戏 以前玩过的一个小游戏倒是让我对这道题的解法有了方
  • bzoj1110 [POI2007]砝码Odw 贪心+进制拆分

    题意就不说了 一开始居然在想直接dp 看到是整数倍我的内心居然毫无波动 真是傻的不行了 因为是整数倍 那我们可以把一个容器用砝码的重量做为进制拆分 然后从小到大一个个填就可以了 贪心策略肯定是最优的 具体如何拆分看hzwer www htt
  • Educational Codeforces Round 67 (Rated for Div. 2)

    contest链接 A Stickers and Toys time limit per test 2 seconds memory limit per test 256 megabytes input standard input out
  • 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的
  • 贪心——字典序最小问题

    https vjudge net problem POJ 3617 题目简单理解就是 给定长度为N的字符串为S 要构造一个长度为N的字符串T 起初 T 是一个空串 随后反复进行下列任意操作 从S的头部删除一个字符串 加到T的尾部 从S的尾部
  • LeetCode-1775. 通过最少操作次数使数组的和相等【贪心,数组,计数】

    LeetCode 1775 通过最少操作次数使数组的和相等 贪心 数组 计数 题目描述 解题思路一 让sum1
  • LeetCode-1827. 最少操作使数组递增【贪心,数组】

    LeetCode 1827 最少操作使数组递增 贪心 数组 题目描述 解题思路一 简单暴力 解题思路二 优化1 ans是操作数 mx是当前最大元素 mx无论如何会依次递增 解题思路三 优化2 遇到小的数就pre 1 否则变为num 题目描述
  • 1489. 田忌赛马 (贪心,区间dp)

    题目 田忌赛马的故事 田忌每次输一局要付200元 赢一局获得200元 平局获得0元 问 田忌和齐王都有n匹马的情况下 最多可以获得多少元 1489 田忌赛马 AcWing题库 由于田忌赛马的故事背景 我们很快就能够想到合理的贪心策略 上等马
  • BZOJ4868 [Shoi2017]期末考试

    YY一下的话感觉代价关于最晚出分时间是一个单峰函数 三分最晚的出分时间 然后贪心一下算代价就行 如果A gt B就只用B就行了 要不然的话出分时间小于当前限制的都可以随便往后调直到到达限制 那么先尽量用A 调不到限制以内的再用B即可 inc
  • 信息学奥赛一本通 1240:查找最接近的元素

    题目链接 http ybt ssoier cn 8088 problem show php pid 1240 include
  • AcWing 1247. 后缀表达式

    老师的讲课网址 https www acwing com video 736 第二个图就已经告诉我们只要有一个减号 我们就可以组成至少含一个减号的所有组合 比如说一个减号三个加号我们可以组合成 1 2 3 4 所以代码如下 include
  • 编程之美2015初赛第二场AB

    题目1 扑克牌 时间限制 2000ms 单点时限 1000ms 内存限制 256MB 描述 一副不含王的扑克牌由52张牌组成 由红桃 黑桃 梅花 方块4组牌组成 每组13张不同的面值 现在给定52张牌中的若干张 请计算将它们排成一列 相邻的
  • [POI2007]砝码Odw

    看这数据范围就不太可DP的样子 考虑贪心 首先注意到题目里有对于任意两个砝码其中一个是另一个质量整数倍的条件 所以砝码质量的种类不超过log INF 考虑按质量从小到大把砝码往容器里放 这样的话所有的砝码和容器的质量都可以除以当前砝码质量然
  • Match Points【Codeforces 1156C】【二分答案】

    题目链接 题意有点像上海EC某年的一道铜牌题 具体是哪年记不得了 我们要去N个的关系 使得最多的匹配对达到他们的差值 Z 这样的情况 有这样的一组数据可以很好的反映这道题为什么有人会WA了 4 3 1 4 5 7 但是 同时也证明了 我们取

随机推荐

  • 深度学习笔记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个人要吃派 但这些人又很挑剔 他们每个人吃派只吃一种派 并且还不能容忍其他人吃的派比自己多 所以这就是