九度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 题目描述: 给定两个正整数,计 ...
随机推荐
- Atitit..组件化事件化的编程模型--(2)---------Web datagridview 服务器端控件的实现原理and总结
Atitit..组件化事件化的编程模型--(2)---------Web datagridview 服务器端控件的实现原理and总结 1. 服务端table控件的几个流程周期 1 1.1. 确认要显示 ...
- atitit.ajax bp dwr 3.的注解方式配置使用流程总结 VO9o.....
atitit.ajax bp dwr 3.的注解方式配置使用流程总结 VO9o..... 1. 安装配置 1 1.1. 下载 dwr.jar 1M 1 1.2. 配置注解方式..web.xml 1 ...
- 写hive db的两种方法
方法1tmp_channel_hive_file="/tmp/tmp_channel_hive_file"tmp_channel_hive_file_new="/tmp/ ...
- ES5 数组方法reduce
reduce() 方法接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始合并,最终为一个值. 参数 callback 执行数组中每个值的函数,包含四个参数 previou ...
- Android中Parcelable接口的使用
在做开发的过程中,序列化是非常常见的.比如要将对象保存本地磁盘或者在网络上传输等.实现序列化有两种方式,一种是实现Serializable接口,第二种是实现Parcelable. Serializab ...
- 制作6寸 kindle pdf
设置word 纸张大小为 90mm*117mm 然后保存为 pdf 就好了.
- Socket编程基本流程实践
通讯基本流程图如下所示: Server端代码(ServerDemo.cpp): #include <WinSock2.h> #include <Windows.h> #incl ...
- win7下虚拟机安装mac 转载自 http://itbbs.pconline.com.cn/50602805.html
最近,不断有人问起,如何在vmware下安装MAC系统.起因是以前曾发过一篇贴,在vmware8下安装MAC的方法.于是,重新下载了最新版苹果系统10.8.5,终于成功安装.现将注意事项及过程与各位朋 ...
- Opengl的gl_NormalMatrix【转】
原文地址:http://blog.csdn.net/ichild1964/article/details/9728357 参考:http://www.gamedev.net/topic/598985- ...
- [Lua]50行代码的解释器,用来演示lambda calculus
嗯,来写写经过: 在知乎上看见用Belleve牛用javascript写了一个精简的lisp解释器 => 我也想写一个,用lua写,能多简单呢? => 写了一个阉割的scheme解释器,包 ...