`
JAVA那点事
  • 浏览: 17904 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类

POJ 2709 Painter ——JAVA实现

阅读更多

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;
	}
	
}
 
分享到:
评论

相关推荐

    POJ2485Highways——JAVA版

    ### POJ2485Highways —— JAVA版 #### 题目背景与目标 在虚拟的岛国Flatopia中,尽管地形平坦,但该国却没有一条公共高速公路,这导致了交通上的不便。为了解决这个问题,Flatopia政府计划修建一些高速公路,使得...

    POJ 1006 源代码——中国剩余定理分析

    POJ 1006 源代码——中国剩余定理分析POJ 1006 源代码——中国剩余定理分析POJ 1006 源代码——中国剩余定理分析

    POJ 1751 求最小生成树prim算法(JAVA)

    标题 "POJ 1751 求最小生成树Prim算法(JAVA)" 提到的是一个编程挑战,涉及图论中的经典算法——Prim算法。在计算机科学中,Prim算法是用于寻找加权无向图的最小生成树的一种有效方法。最小生成树是一棵树形结构,...

    POj 1001源代码——高精度乘单精度

    POj 1001源代码——高精度乘单精度POj 1001源代码——高精度乘单精度POj 1001源代码——高精度乘单精度POj 1001源代码——高精度乘单精度

    poj2488——dfs深度优先遍历

    poj 2488——dfs深度优先遍历 //给行数列数,求问能否遍历,给出字典序的一种遍历

    POJ.rar_poj java_poj1048

    【标题】"POJ.rar_poj java_poj1048" 涉及的知识点主要围绕编程竞赛中的“约瑟夫环”问题,这里是一个加强版,使用Java语言进行解决。 【描述】"POJ1048,加强版的约瑟夫问题 难度中等" 提示我们,这个问题是编程...

    树状数组练习:POJ 2481(JAVA)

    【标题】"树状数组练习:POJ 2481(JAVA)" 是一篇关于使用树状数组(也称为线段树)解决编程竞赛问题的文章。这篇文章可能详细讲解了如何运用这种数据结构来解决特定的问题POJ 2481。POJ(Programming Online Judge)...

    强大的POJ分类——各类编程简单题及其算法分类

    【强大的POJ分类——各类编程简单题及其算法分类】 POJ,全称为Peking University Online Judge,是北京大学提供的一个在线编程题目平台,支持多种编程语言,包括Pascal、C、C++、Java、Fortran、Python等。这个...

    poj1260 —— 最少的钱买完所需珍珠

    c表示有多少种珍珠 ai 表示第i种珍珠所需的数量 pi 表示第i种珍珠的价钱 每买一种珍珠都需要付额外的10 * pi的钱,便宜的珍珠可以用贵的珍珠来代替,求最少的钱的总数。

    凸包练习: POJ 2187(JAVA)

    【标题】"凸包练习: POJ 2187(JAVA)" 是一个关于编程算法的挑战,主要涉及计算机科学中的几何算法。在本问题中,我们关注的是二维平面上的点集及其凸包(Convex Hull)的概念。凸包可以被理解为一个最小的多边形,该...

    poj1001java biginteger

    用java的biginteger实现的poj1001,比较简单的方法

    poj部分源码--Java

    poj平台有关数据结构题的Java源码 1159 1276 2406 2502 2509 2513 2533 2778 3176

    POJ2002-Squares

    【标题】"POJ2002-Squares"是一个经典的计算机编程题目,源自北京大学的在线判题系统(POJ,即PKU Online Judge)。这个题目主要涉及到算法设计和实现,尤其是数学和动态规划方面的知识。 【描述】"解题报告+AC代码...

    北大poj JAVA源码

    【北大POJ JAVA源码】是一系列用于解决北京大学在线编程平台(POJ)问题的Java程序集合。这个压缩包中的代码资源,对于学习Java编程、算法设计和优化以及熟悉在线编程竞赛有着重要的参考价值。POJ是北京大学面向全国...

    pku acm 3356 AGTC Java代码

    pku acm 第3356题 AGTC Java代码,有详细的注释,动态规划

    田忌赛马: POJ 2287(贪心解法)

    具体到代码实现,我们可以使用Java语言编写。在`Main.java`文件中,可能会包含如下关键步骤: 1. 定义马的速度数组,并对其进行排序。 2. 初始化胜场数为0。 3. 遍历排序后的马的速度,对于每一场比赛: - 让最快...

    POJ 2255 java

    提示:二叉树遍历而已,给出前序和中序,求后序 解题思路 1、前序遍历的第一个字母必是 根 2、在中序遍历的字母串中找出 根字母,那么根字母左右两边的字符串就分别是它的左、右子树 3、利用递归复原二叉树(把...

    数据结构中poj题目算法分类——针对ACM竞赛

    - **数组**:是最基础的数据结构,用于存储同类型元素的序列,可以实现基本的增删查改操作。 - **链表**:非连续存储结构,通过指针连接元素,适合频繁插入和删除的情况。 - **队列**:先进先出(FIFO)的数据...

Global site tag (gtag.js) - Google Analytics