九度OJ 1502 最大值最小化(JAVA)
题目1502:最大值最小化(二分答案)
九度OJ
Java
import java.util.Scanner;
public class Main {
public static int max(int x ,int y){
return x > y ? x : y;
}
public static int solve(int tot , int m , int n ,int a[]){
int low = 1 , high = tot;
while(low <= high){
int mid = (low + high) / 2;
int i = 1 , count = 0 , k , flag = 1 ;
while(i <= m){
if(a[i] > mid){
flag = 0; break;
}
int sum = 0;
for(k = i; k <= m; k++){
sum += a[k];
if(sum > mid) break;
}
i = k;
count++;
}
if(flag == 0 || count > n) low = mid + 1;
else if(count == n) high = mid - 1;
else high = mid - 1;
/*
if(count <= n) high = mid - 1;
else low = mid + 1;
*/
}
return max(low , high);
}
public static void main(String[] args){
final int N = 510 , M = 510;
int cas,n,m,tot;
int[] a = new int[M];
Scanner cin = new Scanner(System.in);
cas = cin.nextInt();
while((cas--) != 0){
m = cin.nextInt();
n = cin.nextInt();
tot = 0;
for(int i = 1; i <= m; i++){
a[i] = cin.nextInt();
tot += a[i];
}
int res = solve(tot,m,n,a);
System.out.println(res);
}
}
}
C++
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
#define N 510
#define M 510 int a[M],tot; int main()
{
int cas,n,m;
scanf("%d",&cas);
while(cas--)
{
tot = ;
scanf("%d%d",&m,&n);
for(int i=; i<=m; i++)
scanf("%d",&a[i]) , tot += a[i];
int low = , high = tot , mid;
while(low <= high)
{
mid = (low + high) >> ;
int i = , k , count = , ok = ;
while(i<=m)
{
if(a[i] > mid)
{ ok = ; break;}
int sum = ;
for(k=i; k<=m; k++)
{
sum += a[k];
if(sum > mid) break;
}
i = k;
count++;
}
if(!ok || count > n) low = mid + ;
else if(count == n) high = mid - ;
else high = mid - ;
}
printf("%d\n",max(low,high));
}
}
九度OJ 1502 最大值最小化(JAVA)的更多相关文章
- 九度OJ 1187:最小年龄的3个职工 (排序)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:2291 解决:936 题目描述: 职工有职工号,姓名,年龄.输入n个职工的信息,找出3个年龄最小的职工打印出来. 输入: 输入第一行包括1个 ...
- 九度OJ 1020:最小长方形 (基础题)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:6019 解决:2849 题目描述: 给定一系列2维平面点的坐标(x, y),其中x和y均为整数,要求用一个最小的长方形框将所有点框在 ...
- 九度OJ 1086:最小花费 (DP)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:3960 解决:819 题目描述: 在某条线路上有N个火车站,有三种距离的路程,L1,L2,L3,对应的价格为C1,C2,C3.其对应关系如下 ...
- 九度OJ 1102:最小面积子矩阵 (DP、缓存、剪枝)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:1666 解决:504 题目描述: 一个N*M的矩阵,找出这个矩阵中所有元素的和不小于K的面积最小的子矩阵(矩阵中元素个数为矩阵面积) 输入: ...
- 九度OJ 1209:最小邮票数 (遍历)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:2252 解决:741 题目描述: 有若干张邮票,要求从中选取最少的邮票张数凑成一个给定的总值. 如,有1分,3分,3分,3分,4分五 ...
- 九度OJ 1371 最小的K个数 -- 堆排序
题目地址:http://ac.jobdu.com/problem.php?pid=1371 题目描述: 输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4 ...
- 【九度OJ】题目1191:矩阵最大值 解题报告
[九度OJ]题目1191:矩阵最大值 解题报告 标签(空格分隔): 九度OJ http://ac.jobdu.com/problem.php?pid=1191 题目描述: 编写一个程序输入一个mXn的 ...
- 【九度OJ】题目1187:最小年龄的3个职工 解题报告
[九度OJ]题目1187:最小年龄的3个职工 解题报告 标签(空格分隔): 九度OJ http://ac.jobdu.com/problem.php?pid=1187 题目描述: 职工有职工号,姓名, ...
- 【九度OJ】题目1438:最小公倍数 解题报告
[九度OJ]题目1438:最小公倍数 解题报告 标签(空格分隔): 九度OJ 原题地址:http://ac.jobdu.com/problem.php?pid=1438 题目描述: 给定两个正整数,计 ...
随机推荐
- CSS 冲击波(水波纹)效果
<span style="font-size:18px;"><!DOCTYPE html> <html> <head> <me ...
- 三国杀3v3心法——总述篇
昔日,独孤求败前辈精研剑法,将其中奥妙化为独孤九剑,破尽天下武功.其中开篇总诀式提纲挈领,从宏观的层面阐述剑道,是领悟后面八式的基石,而之后各式则深入微观,可各破一类具体的武功.笔者亦曾苦心研究三国杀 ...
- paip.提升效率--调试--日志系统日志参数含义---python
paip.提升效率--调试--日志系统日志参数含义---python #同时向控制台和文件输出日志 #日志参数含义 import logging log_format = '%(filename)s ...
- 使用bee自动生成api文档
beego中的bee工具可以方便的自动生成api文档,基于数据库字段,自动生成golang版基于beego的crud代码,方法如下: 1.进入到gopath目录的src下执行命令: bee api a ...
- iOS开发网络篇—发送GET和POST请求(使用NSURLSession)
iOS开发网络篇—发送GET和POST请求(使用NSURLSession) 说明: 1)该文主要介绍如何使用NSURLSession来发送GET请求和POST请求 2)本文将不再讲解NSURLConn ...
- Android运行时异常“Binary XML file line # : Error inflating class”
http://blog.csdn.net/huangxiaohu_coder/article/details/8497286 在原生Android下编译APK,编译没有问题,但是在运行的时候经常出现如 ...
- 创建一个Windows的NTP Server
搭建一个VMware vRealize Suite的时候遇见了不少时间同步的问题, 实验室里网络与外界隔绝, 不能使用公网的NTP服务器, 所以使用文中的方法自己搭建了一个. 蛮好用的. Creati ...
- arcgis手动启动服务提示端口4000被使用
具体解决办法 参考 http://hi.baidu.com/xjx19860908/item/6b46376d92044694c4d249f6该博文. 手动启动,提示4000端口被占用,去查找4000 ...
- win7下安装ubuntu13.04
http://teliute.org/linux/Ubsetup/jichu1/jichu1.html xp下安装 http://flysqrlboy.blog.51cto.com/5027074/8 ...
- [ay原创作品]用wpf写了个模仿36Kr网站登录背景的效果
这里我借鉴了,上周比较火的一个前端文章,人家用js去写的,地址 自己用wpf也写了一个,但是它的 粒子比较,然后连线算法真的很差,他创建了一个加入鼠标点的集合,2个集合进行比较,并且粒子会向鼠标靠近 ...