la3635pie(二分法)

author author     2022-08-04     617

关键词:

链接:http://vjudge.net/problem/33697

分析:二分答案。假设每个人得到派的最大面积是x,判断是否能满足F+1个人(因为派是不可以拼起来的,所以一个半径为r的派只能切出[πr²/x]个派,其他部分就浪费了)。

 1 #include <cstdio>
 2 #include <cmath>
 3 #include <algorithm>
 4 using namespace std;
 5 
 6 const double PI = acos(-1.0);
 7 const int maxn = 10000 + 5;
 8 
 9 int n, f;
10 double A[maxn];
11 
12 bool ok(double area) {
13     int sum = 0;
14     for (int i = 0; i < n; i++) sum += floor(A[i] / area);
15     return sum >= f + 1;
16 }
17 
18 int main() {
19     int T;
20     scanf("%d", &T);
21     while (T--) {
22         scanf("%d%d", &n, &f);
23         double maxa = -1;
24         for (int i = 0; i < n; i++) {
25             int r; scanf("%d", &r);
26             A[i] = PI * r * r;
27             maxa = max(maxa, A[i]);
28         }
29         double L = 0, R = maxa;
30         while (R - L > 1e-5) {
31             double M = (L + R) / 2;
32             if (ok(M)) L = M;
33             else R = M;
34         }
35         printf("%.4lf
", L);
36     }
37     return 0;
38 }

 

uvalive3635pie

...到的蛋糕的最大面积。思路:使得最小值最大,那显然是二分。二分半径,计算面积,然后枚举每个蛋糕,计算每个蛋糕可以分出来的当前面积的蛋糕会有多 查看详情

la3635派

...说,不能从两个里面去拼。求每个人最大的面积。分析:二分。二分能够得到的最大面积x,怎么判 查看详情

zoj-3635cinemainakiba(树状数组+二分)

...座位1到座位x空座的个数。2、对于每个人,根据sum(mid),二分找使sum(mid)大于等于a[i]的最小的mid,即第ai个空座的位置,并将该位置加上-1,则该位置的值变为0,从而不参与空座数的统计。3、vis[q 查看详情

poj3122-pie(二分+精度)

...2的份,剩下两个要扔掉。)思路:对每个人分的大小进行二分。注意讲pi放在最后成。能够提高精度。Ps:wa了5发。不知道错在哪,然后把输出的%lf改成%f就A了,并不知道为什么。。。sad 查看详情

hdu1969---pie(代码片段)

tips:  1.二分答案和二分查找还是有区别  2.条件判断和区间LR的改变是有关系的  3.二分答案的精度和区间LR的偏移量有关  4.上一道题的条件转换 最后一个满足C--->第一个满足!C//还是二分答案,怎么二分呢,答... 查看详情

hdu1969pie(二分查找)

...一个人最大能分到多大体积的馅饼面积。【解题思路】:二分,对于每一个V值,我们枚举相应情况下人数P的多少,发现是单调递减的,因此二分查找区间,初始值left=0,right=inf;然后judge函数推断当前mid值是否能使得p>=m,因此累... 查看详情

poj3122pie二分答案(代码片段)

...在问每人分得蛋糕的体积是多少。解题分析:就是普通的二分答案,但是要注意一下浮点型二分的结构,与整型二分略有不同。 #include<cstdio>#include< 查看详情

hdu1969pie二分

...,精确到小数点后四位。2.分析:一看是这种输出就知道用二分写会很高效,这 查看详情

poj3122pie(二分)(代码片段)

...:很简单很水,但是精度处理很恶心,wa了很多发,直接二分蛋糕的半径就行了AC代码:1#include<iostream>2#include<vector>3#include<cstdio>4#include<algorithm>5#include<cmath>6#include<cstring>7#include<queue>8#include<map>9#... 查看详情

la3971组装电脑(二分)

...的品质因子应尽量大。 思路:最小值最大,很明显要二分。那么怎么判断这个品质因子下钱是够用的呢?对于每个类型的配件来说,买最便宜的复合品质因子的配件,如 查看详情

la4254处理器(二分+贪心)

https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2255题意:有n个任务,每个任务有3个参数ri,di和wi,表示必须在时刻[ri,di]之内执行,工作量为wi。处理器的速度可以为任意值,任务不一定... 查看详情

hdu5976la7728detachment逆元+前缀和+二分(代码片段)

DetachmentTimeLimit:4000/2000MS(Java/Others)MemoryLimit:65536/65536K(Java/Others)TotalSubmission(s):6903AcceptedSubmission(s):1918ProblemDescriptionInahighlydevelopedaliensociety,thehabitatsarealmosti 查看详情

la4043-ants(二分图完备最佳匹配km)

option=com_onlinejudge&Itemid=8&page=show_problem&problem=2044">https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2044大致题意: 查看详情

la3268号码簿分组(最大流+二分)

https://vjudge.net/problem/UVALive-3268题意:有n个人和m个组。一个人可能属于很多组。现在请你从某些组中去掉几个人,使得每个人只属于一个组,并使得人数最多的组中人员数目为最小值。 思路:建立超级源汇点,源点和每个人... 查看详情

la4254贪心

...太久没有做题了,竟然脑子反应好慢的。还是很容易想到二分,但是二分怎么转移呢?可以看出,[l,r]的区间范围不大,可以枚举,cpu此时的二分答案x,尽可能的贪心,怎么贪心呢,在同一速度情况下,是最先结束的优先。而且... 查看详情

poj3122pie

...,求每个人能得到的pie的最大大小。solution   经典二分答案。代码://poj3122#include<algorithm>#include<iostream>#include<cst 查看详情

图论:tzoj二分图练习(代码片段)

目录 1023 1037 1321 2021 23802733 3635 5839  5840  58421023:TaxiCabScheme返回顶部描述Runningataxistationisnotallthatsimple.Apartfromtheobviousdemandforac 查看详情

la3211

2-sat+二分。。。每次二分答案然后连边2-sat。。。边要开到n*n样例水得跟没有一样。。。#include<bits/stdc++.h>usingnamespacestd;constintN=4010;structedge{intnxt,to;}e[N*N<<1];intn,cnt=1,top,Time,cot;intdfn[N],low[N],vis[N],st[N 查看详情