博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj3273(二分)
阅读量:7066 次
发布时间:2019-06-28

本文共 566 字,大约阅读时间需要 1 分钟。

题目链接:https://vjudge.net/problem/POJ-3273

题意:给定n个数,将这n个数划分成m块,问所有块最大值的最小是多少。

思路:注意到所求值最大为109,所以可以用二分来解这道题,输入过程得到n个数的和Sum,n个数中最大值Max,则[Max,Sum]即为二分区间。查找的是第一个<=m的值,所以返回的是l,复杂度为O(nlogn)。

AC代码:

#include
using namespace std;int n,m,a[100005],Max,Sum;int getm(int x){ int ret=1,k=1,tmp=a[0]; while(k
Max) Max=a[i]; } int l=Max,r=Sum,mid; while(l<=r){ mid=(l+r)>>1; if(getm(mid)<=m) r=mid-1; else l=mid+1; } printf("%d\n",l); return 0;}

 

转载于:https://www.cnblogs.com/FrankChen831X/p/10739985.html

你可能感兴趣的文章
ios 第一篇文章-xcode6.2键盘调不出来
查看>>
Android零基础入门第15节:掌握Android Studio项目结构,扬帆起航
查看>>
第一个go的web程序;调用七牛云存储的音频api问题解决;条件搜寻文件中的内容,字符串拼接+在上一行...
查看>>
Curses library not found. Please install appropriate package
查看>>
一张图弄明确开源协议-GPL、BSD、MIT、Mozilla、Apache和LGPL 之间的差别
查看>>
c#解析XML文件来获得pascal_voc特定目标负样本
查看>>
浅谈cocos2dx(18) 中工厂模式
查看>>
input 输入框默认获得焦点
查看>>
hbase1.1.4集群搭建
查看>>
虚拟短信
查看>>
WIN7实现多用户远程桌面
查看>>
BZOJ3736 : [Pa2013]Karty
查看>>
InstallShield.12完美使用
查看>>
Ansible系列(一):基本配置和使用
查看>>
Javascript标准DOM Range操作
查看>>
关于SQL Server将一列的多行内容拼接成一行的问题讨论
查看>>
模板显式、隐式实例化和(偏)特化、具体化的详细分析
查看>>
LD1-K(求差值最小的生成树)
查看>>
crontab定时任务配置
查看>>
[转]用Hyper-v 和Failover Cluster 创建高可用性虚拟机
查看>>