用java求最大值oj_九度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

#include

#include

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 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,题目1089:数字反转

题目描述: 12翻一下是21,34翻一下是43,12+34是46,46翻一下是64,现在又任意两个正整数,问他们两个数反转的和是否等于两个数的和的反转. 输入: 第一行一个正整数表示测试数据的个数n. ...

九度OJ 1531 货币面值&lpar;网易游戏2013年校园招聘笔试题&rpar; -- 动态规划

题目地址:http://ac.jobdu.com/problem.php?pid=1531 题目描述: 小虎是游戏中的一个国王,在他管理的国家中发行了很多不同面额的纸币,用这些纸币进行任意的组合可以在 ...

hdu 1284 关于钱币兑换的一系列问题 九度oj 题目1408:吃豆机器人

钱币兑换问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Sub ...

随机推荐

yii2安装

https://github.com/settings/tokens  设置token 在安装的时候 要复制进去 复制到安装命令中去

scala的继承

package com.test.scala.test /** * 模拟java的继承,扩展类 */ abstract class ExtendClass(val des:String) { def ...

shell之脚本片断

16. 以下是平台信息 CentOS Linux release 7.1.1503 (Core) Linux mysql-dev1 3.10.0-229.el7.x86_64 #1 SMP Fri M ...

Jenkins 实际项目操作

.Abstract { padding: 15px; border: dotted 2px #999; color: #999; font-family: "Microsoft Yahei& ...

STL&lowbar;iterator迭代器&lpar;2&rpar;——几种迭代器对象的用法

要学会使用迭代器和容器以及算法,需要学习下面的新技术. 一.流和迭代器 本书的很多例子程序使用I/O流语句来读写数据.例如: int value; cout << "Enter ...

AngularJS1

Ⅰ.AngularJS的点点滴滴--引导   AngularJS已经被很多人像炒冷饭一样炒过啦,大部分都是直接复制官方文档没有说明一些注意事项,不过什么都要从头开始吧 ###页面引导实例化 * * * ...

indexed database IndexedDB

Indexed Database API 目的是提供一个可供javascript存储和检索对象,并且还能进行查询,搜索等数据库操作   设计为几乎完全异步,因此绝大部分操作都稍后执行,因此每次操作都应 ...

程序员的自我救赎---3&period;2:SSO及应用案例

(一) Winner2.0 框架基础分析 (二)PLSQL报表系统 (三)SSO单点登录 (四) 短信中心与消息中心 (五)钱包系统 (六)GPU支付中心 (七)权限系统 (八) ...

day03笔记

1.list操作stus = ['xiaohei','xiaobai','xiaohuang','cxdser'] #数组.list.array#增加stus.append('原宝')#在list末尾 ...

kafka集群的错误处理--kafka一个节点挂了,导致消费失败

今天由于kafka集群搭建时的配置不当,由于一台主消费者挂掉(服务器崩了,需要维修),导致了所有新版消费者(新版的offset存储在kafka)都无法拉取消息. 由于是线上问题,所以是绝对不能影响用户 ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值