JAVA实现POJ2709——稻草人
原题:http://poj.org/problem?id=2709
题意:
给出几种颜色需求的ml量,然后最后一个数是灰色需求量,灰色可以由任何三中不同颜色的颜色组成,每个颜料盒有所给出的颜色50ml。
问最少给出几个颜料盒,可以组成所需求颜色
用贪心来解决,先求出满足的普通色所需的最小盒数,然后把剩余颜料从大到小排列,那前三种每个取出1ml组成1ml的灰色(每次取1ml才能达到最优解)。
代码:
import java.util.Arrays;
import java.util.Collections;
import java.util.Scanner;
public class Main {
static int Gray = 0;
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while(in.hasNext())
{
int nCase = in.nextInt();
if(nCase==0)
break;
int max = 0;
Integer[] array = new Integer[nCase];
for(int i=0;i<nCase;i++)
{
array[i]=in.nextInt();
if(array[i]>max)
max = array[i];
}
Gray = in.nextInt();
System.out.println(getAns(array,max));
}
}
static int getAns(Integer[] array,int max)
{
int count=0;
count+=max/50;
if(max%50!=0)
count++;
for(int i=0;i<array.length;i++)
{
array[i] = count*50-array[i];
}
while(Gray>0)
{
Arrays.sort(array,Collections.reverseOrder());
if(array[2]>0)
{
Gray--;
array[0]--;
array[1]--;
array[2]--;
}
else
{
count++;
for(int i=0;i<array.length;i++)
array[i]+=50;
}
}
return count;
}
}
分享到:
相关推荐
The island nation of Flatopia is perfectly flat. Unfortunately, Flatopia has no public highways. So the traffic is difficult in Flatopia. The Flatopian government is aware of this problem....
POJ 1006 源代码——中国剩余定理分析POJ 1006 源代码——中国剩余定理分析POJ 1006 源代码——中国剩余定理分析
POj 1001源代码——高精度乘单精度POj 1001源代码——高精度乘单精度POj 1001源代码——高精度乘单精度POj 1001源代码——高精度乘单精度
poj 2488——dfs深度优先遍历 //给行数列数,求问能否遍历,给出字典序的一种遍历
NULL 博文链接:https://128kj.iteye.com/blog/1705139
c表示有多少种珍珠 ai 表示第i种珍珠所需的数量 pi 表示第i种珍珠的价钱 每买一种珍珠都需要付额外的10 * pi的钱,便宜的珍珠可以用贵的珍珠来代替,求最少的钱的总数。
POJ1048,加强版的约瑟夫问题 难度中等
用java的biginteger实现的poj1001,比较简单的方法
POJ 是“北京大学程序在线评测系统”(Peking University Online Judge)的缩写,是个提供编程题目的网站,兼容Pascal、C、C++、Java、Fortran、Python等多种语言。可以按照分类,在POJ上做题。
NULL 博文链接:https://128kj.iteye.com/blog/1744222
poj平台有关数据结构题的Java源码 1159 1276 2406 2502 2509 2513 2533 2778 3176
pku acm 第3356题 AGTC Java代码,有详细的注释,动态规划
POJ 1328 java做!雷达问题!java版本!AC答案~
北大POJ2002-Squares 解题报告+AC代码
这是我个人写的POJ上2314题的Java实现,希望对喜欢ACM的人有帮助
提示:二叉树遍历而已,给出前序和中序,求后序 解题思路 1、前序遍历的第一个字母必是 根 2、在中序遍历的字母串中找出 根字母,那么根字母左右两边的字符串就分别是它的左、右子树 3、利用递归复原二叉树(把...
北大poj JAVA源码
poj 2785 4 Values whose Sum is 0 测试数据 解题报告: http://blog.csdn.net/qq7366020/article/details/8623208
NULL 博文链接:https://128kj.iteye.com/blog/1749213
数据结构中的各算法,初级,中级,高级。如集合,图的规划,数据等