以下三道都是经典二分,道理都差不多,代码就贴在一起了。

POJ 3122    POJ 3258    POJ 3273

POJ 3122:

#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
#define PI 3.14159265359 //ÓÃ3.1415926»áWA¡£¡£¡£
double pie[10005]; int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int n,f,r;
double maxp=0.0;
scanf("%d%d",&n,&f);
f++;
for(int i=0;i<n;i++)
{
scanf("%d",&r);
pie[i]=r*r*PI;
maxp=max(maxp,pie[i]);
}
double left=0.0,right=maxp;
while(left+1e-6<right)
{
double mid=(left+right)/2.0;
int sum=0;
for(int i=0;i<n;i++)
sum+=floor(pie[i]/mid);
if(sum>=f)
left=mid;
else right=mid;
}
printf("%.4lf\n",left);
}
return 0;
}

POJ 3258:

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std; int main()
{
int L,n,m,d[50005];
while(~scanf("%d%d%d",&L,&n,&m))
{
int l=L,r=L,mid;
d[0]=0; d[n+1]=L;
for(int i=1;i<=n;i++)
scanf("%d",&d[i]);
sort(d,d+n+2);
for(int i=1;i<=n+1;i++)
l=min(l,d[i]-d[i-1]); while(l<r)
{
mid=(l+r)>>1;
int cnt=0,sum=0;
for(int i=1;i<=n+1;i++)
{
if((sum+=(d[i]-d[i-1]))<=mid) //注意加括号
cnt++;
else sum=0;
}
if(cnt>m)
r=mid;
else l=mid+1;
}
printf("%d\n",l);
}
return 0;
}

POJ 3273:

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std; int main()
{
int n,m,pay[100005];
while(~scanf("%d%d",&n,&m))
{
int l=0,r=0;
for(int i=0;i<n;i++)
{
scanf("%d",&pay[i]);
l=max(l,pay[i]);
r+=pay[i];
}
while(l<r)
{
int cnt=0,sum=0;
int mid=(l+r)/2;
for(int i=0;i<n;i++)
{
sum+=pay[i];
if(sum>mid)
{
cnt++;
sum=pay[i];
}
}
if(cnt<m)
r=mid;
else l=mid+1;
}
printf("%d\n",l);
}
return 0;
}

POJ 3122 & 3258 & 3273 #二分的更多相关文章

  1. 【POJ 3122】 Pie (二分+贪心)

    id=3122">[POJ 3122] Pie 分f个派给n+1(n个朋友和自己)个人 要求每一个人分相同面积 但不能分到超过一个派 即最多把一整个派给某个人 问能平均分的最大面积 二 ...

  2. POJ - 3122 Pie(二分)

    http://poj.org/problem?id=3122 题意 主人过生日,m个人来庆生,有n块派,m+1个人(还有主人自己)分,问每个人分到的最大体积的派是多大,PS每 个人所分的派必须是在同一 ...

  3. POJ 2456 3258 3273 3104 3045(二分搜索-最大化最小值)

    POJ 2456 题意 农夫约翰有N间牛舍排在一条直线上,第i号牛舍在xi的位置,其中有C头牛对牛舍不满意,因此经常相互攻击.需要将这C头牛放在离其他牛尽可能远的牛舍,也就是求最大化最近两头牛之间的距 ...

  4. POJ 3122 Pie【二分答案】

    <题目链接> 题目大意: 将n个半径不一但是高度为1的蛋糕分给 F+1个人,每个人分得蛋糕的体积应当相同,并且需要注意的是,每个人分得的整块蛋糕都只能从一个蛋糕上切下来,而不是从几个蛋糕上 ...

  5. POJ 3122 Pie(二分+贪心)

    Pie Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 22684   Accepted: 7121   Special Ju ...

  6. poj 3122 (二分查找)

    链接:http://poj.org/problem?id=3122 Pie Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 1 ...

  7. poj 3258 3273

    poj3258 题目  (最大化最小值)(最小值最大化) 题意:牛要到河对岸,在与河岸垂直的一条线上,河中有N块石头,给定河岸宽度L,以及每一块石头离牛所在河岸的距离,现在去掉M块石头,要求去掉M块石 ...

  8. E - River Hopscotch POJ - 3258(二分)

    E - River Hopscotch POJ - 3258 Every year the cows hold an event featuring a peculiar version of hop ...

  9. POJ 3122 Pie 二分枚举

    题目:http://poj.org/problem?id=3122 这个题就好多了,没有恶心的精度问题,所以1A了.. #include <stdio.h> #include <ma ...

随机推荐

  1. 转载:jsp九大内置对象和四大作用域

    摘要: JSP的九大内置对象: page,application,session,request,response,out,exception,config,pageContext. JSP的四个作用 ...

  2. 9.mybatis动态SQL标签的用法

    mybatis动态SQL标签的用法   动态 SQL MyBatis 的强大特性之一便是它的动态 SQL.如果你有使用 JDBC 或其他类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句有多么 ...

  3. weak引用变量是否线程安全

    1.在ARC出现之前,Objetive-C的内存管理需要手工执行release&retain操作,这些极大增加了代码的编写难度,同时带来很多的crash.  同时大量的delegate是unr ...

  4. Batch File Rename Utility(文件批量改名软件) 1.1.4231

    软件名称: Batch File Rename Utility(文件批量改名软件) 1.1.4231.23098 软件语言: 英文 授权方式: 免费软件 运行环境: Win7 / Vista / Wi ...

  5. 解决Intellij Idea里tomcat启动报The JRE_HOME environment variable is not defined correctly的错误

    创建一个maven项目后想启动tomcat测试一下新建的maven项目,结果一直报The JRE_HOME environment variable is not defined correctly, ...

  6. [SQL基础教程] 3-1 对表进行聚合查询

    [SQL基础教程] 3-1 对表进行聚合查询 聚合函数 用于合计的函数称为聚合函数或者集合函数 COUNT SUM AVG MAX MIN SELECT COUNT(*) FROM table; SE ...

  7. Dynamic Programming - leetcode [动态规划]

    115. Distinct Subsequences 96. Unique Binary Search Trees 120. Triangle 123. Best Time to Buy and Se ...

  8. maven构建这么慢,怎么改变?

    Apache Maven是当今非常流行的项目构建和管理工具,它把开发人员从繁杂的项目依赖关系处理事务中解放出来,完全自动化管理依赖问题.在Web应用开发过程中,通常我们会用到maven的archety ...

  9. 移动HTML 5前端性能优化指南(转载)

    前端工程师的菜!最近移动Html 5越来越火,想有一个体验流畅的Html 5 应用,这篇优化指南就别放过咯.腾讯的同学将关键的注意点与优化方法都总结出来,全文高能干货,非常值得深度学习 >> ...

  10. SQLSERVER 的联接查询写法

    1.内连接 语法:[JOIN.INNER JOIN] 作用:两个表相连,加上ON匹配两个表的共同条件. 实例1: SELECT tb_o_i.* FROM tb_o_i INNER JOIN tb_o ...