最少颜料

<pre name="code" class="java">有个卖玩具的店里有一种类似颜料盒的东东,颜料盒的颜色种数从3到12不等,每种
颜料有50ml。有一种很特别的颜色叫做灰色,任何一种颜料盒里本来不存在这种颜色,
但是可以用任意3种不同的颜色混合而成。现在你需要N种颜色的颜料盒,并且每种颜
料的需求量也给定,包括灰色,让你求出需要的最少的该颜料盒的个数。

输入:
一行一行的读取数据,每个数据用空格分开,
第一个输入的数是n个所需的非灰色颜色数
接下来是输入n个数,表示每个颜色所需的数量
最后一个输入的数是灰色所需数量

输出:
所需的最小颜色盒数量


测试数据
输入:3 40 95 21 0
输出:2
输入:7 25 60 400 250 0 60 0 500
输出:8
输入:4 90 95 75 95 10
输出:2
输入:4 90 95 75 95 11
输出:3
输入:5 0 0 0 0 0 333
输出:4



import java.util.Arrays;
import java.util.Scanner;

public class 颜料问题 {
	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();
			}
			Gray=in.nextInt();
			for(;Gray>0;Gray--){
				Arrays.sort(array);
				array[0]++;
				array[1]++;
				array[2]++;
			}
			for(int i=0;i<nCase;i++){
				if(array[i]>max)
					max=array[i];
			}
			int box=max/50;
			if(box*50<max)
				box++;
			System.out.println(box);
		}		
	}
}

小海狸有 n n 罐颜料颜料编号从 1 到 n n ,第 i i 个罐子中装有 a [ i ] a[i] 升颜色为 i i 的颜料。小海狸还有一张宽度为 1 的无限长方格纸,由大小为1×1的正方形组成,正方形的编号为1、2、3,依此类推。 小海狸从 1 号正方形开始从左往右涂色。如果当前正方形以颜料 x x 涂色,则下一个正方形将以颜料 x + 1 x+1 涂色;如果 x = n x=n,则下一个正方形将以颜料 1 涂色。每个方格仅需涂 1 升颜料,小海狸持续涂料直到某个方格所需的颜料用完。 如果选择正确的颜色开始涂色,计算可以涂色的最大方格数。 输入 第一行包含一个整数 n n( 1 ≤ n ≤ 200000 1≤n≤200000)-颜料的种类数量。 第二行包含一个整数序列 a 1 , a 2 , . . . , a n a1,a2,...,a n( 1 ≤ a i ≤ 1 0 9 1≤a i≤10 9 ),其中 a i a i 等于第 i i 个罐中颜料的升数。 输出 输出的唯一行应包含一个整数,表示可以涂色的最大方格数。 样例 输入 1复制 5 2 4 2 3 3 输出 1复制 12 输入 2复制 3 5 5 5 输出 2复制 15 输入 3复制 6 10 10 10 1 10 10 输出 3复制 11 提示 子任务一:30分,满足 1 ≤ n ≤ 20 1≤n≤20; 子任务二:30分,满足 1 ≤ n ≤ 2000 1≤n≤2000; 子任务三:40分,满足 1 ≤ n ≤ 200000 1≤n≤200000。 在第一个示例中,最好的策略是从 4 号颜料开始涂色。然后按以下颜色(从左到右)绘制正方形:4,5,1,2,3,4,5,1,2,3,4,5。 在第二个示例中,小海狸可以从任何颜色开始涂色。 在第三个示例中,小海狸可以从 5 号颜料开始涂色。c++
最新发布
08-23
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值