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版 #### 题目背景与目标 在虚拟的岛国Flatopia中,尽管地形平坦,但该国却没有一条公共高速公路,这导致了交通上的不便。为了解决这个问题,Flatopia政府计划修建一些高速公路,使得...
POJ 1006 源代码——中国剩余定理分析POJ 1006 源代码——中国剩余定理分析POJ 1006 源代码——中国剩余定理分析
标题 "POJ 1751 求最小生成树Prim算法(JAVA)" 提到的是一个编程挑战,涉及图论中的经典算法——Prim算法。在计算机科学中,Prim算法是用于寻找加权无向图的最小生成树的一种有效方法。最小生成树是一棵树形结构,...
POj 1001源代码——高精度乘单精度POj 1001源代码——高精度乘单精度POj 1001源代码——高精度乘单精度POj 1001源代码——高精度乘单精度
poj 2488——dfs深度优先遍历 //给行数列数,求问能否遍历,给出字典序的一种遍历
【标题】"POJ.rar_poj java_poj1048" 涉及的知识点主要围绕编程竞赛中的“约瑟夫环”问题,这里是一个加强版,使用Java语言进行解决。 【描述】"POJ1048,加强版的约瑟夫问题 难度中等" 提示我们,这个问题是编程...
【标题】"树状数组练习:POJ 2481(JAVA)" 是一篇关于使用树状数组(也称为线段树)解决编程竞赛问题的文章。这篇文章可能详细讲解了如何运用这种数据结构来解决特定的问题POJ 2481。POJ(Programming Online Judge)...
【强大的POJ分类——各类编程简单题及其算法分类】 POJ,全称为Peking University Online Judge,是北京大学提供的一个在线编程题目平台,支持多种编程语言,包括Pascal、C、C++、Java、Fortran、Python等。这个...
c表示有多少种珍珠 ai 表示第i种珍珠所需的数量 pi 表示第i种珍珠的价钱 每买一种珍珠都需要付额外的10 * pi的钱,便宜的珍珠可以用贵的珍珠来代替,求最少的钱的总数。
【标题】"凸包练习: POJ 2187(JAVA)" 是一个关于编程算法的挑战,主要涉及计算机科学中的几何算法。在本问题中,我们关注的是二维平面上的点集及其凸包(Convex Hull)的概念。凸包可以被理解为一个最小的多边形,该...
用java的biginteger实现的poj1001,比较简单的方法
poj平台有关数据结构题的Java源码 1159 1276 2406 2502 2509 2513 2533 2778 3176
【标题】"POJ2002-Squares"是一个经典的计算机编程题目,源自北京大学的在线判题系统(POJ,即PKU Online Judge)。这个题目主要涉及到算法设计和实现,尤其是数学和动态规划方面的知识。 【描述】"解题报告+AC代码...
【北大POJ JAVA源码】是一系列用于解决北京大学在线编程平台(POJ)问题的Java程序集合。这个压缩包中的代码资源,对于学习Java编程、算法设计和优化以及熟悉在线编程竞赛有着重要的参考价值。POJ是北京大学面向全国...
pku acm 第3356题 AGTC Java代码,有详细的注释,动态规划
具体到代码实现,我们可以使用Java语言编写。在`Main.java`文件中,可能会包含如下关键步骤: 1. 定义马的速度数组,并对其进行排序。 2. 初始化胜场数为0。 3. 遍历排序后的马的速度,对于每一场比赛: - 让最快...
提示:二叉树遍历而已,给出前序和中序,求后序 解题思路 1、前序遍历的第一个字母必是 根 2、在中序遍历的字母串中找出 根字母,那么根字母左右两边的字符串就分别是它的左、右子树 3、利用递归复原二叉树(把...
- **数组**:是最基础的数据结构,用于存储同类型元素的序列,可以实现基本的增删查改操作。 - **链表**:非连续存储结构,通过指针连接元素,适合频繁插入和删除的情况。 - **队列**:先进先出(FIFO)的数据...