美文网首页Leetcode && Lintcode
[编程题] 双核处理

[编程题] 双核处理

作者: 六尺帐篷 | 来源:发表于2017-08-10 14:00 被阅读47次

一种双核CPU的两个核能够同时的处理任务,现在有n个已知数据量的任务需要交给CPU处理,假设已知CPU的每个核1秒可以处理1kb,每个核同时只能处理一项任务。n个任务可以按照任意顺序放入CPU进行处理,现在需要设计一个方案让CPU处理完这批任务所需的时间最少,求这个最小的时间。
输入描述:
输入包括两行:
第一行为整数n(1 ≤ n ≤ 50)
第二行为n个整数length[i](1024 ≤ length[i] ≤ 4194304),表示每个任务的长度为length[i]kb,每个数均为1024的倍数。

输出描述:
输出一个整数,表示最少需要处理的时间

输入例子1:
5
3072 3072 7168 3072 1024

输出例子1:
9216

分析

背包问题的变种

代码

import java.util.*;
 
public class Main {
    public static void main(String[] args) {
         
        Scanner in = new Scanner(System.in);
         
        while(in.hasNext()) {
            int n = in.nextInt();
            int[] task = new int[n];
            int sum = 0;
            for(int i=0;i<n;i++) {
                task[i] = in.nextInt() / 1024;
                sum += task[i];
            }
            int res = solve(task, sum/2);
            res = Math.max(res, sum-res) * 1024;
            System.out.println(res);
        }
        in.close();
         
         
    }
     
    private static int solve(int[] task, int sum) {
         
        int[] dp = new int[sum+1];
         
        for(int i=0;i<task.length;i++) {
            for(int j=sum;j>0;j--) {
                if(j >= task[i])
                    dp[j] = Math.max(dp[j], dp[j-task[i]] + task[i]);
            }
        }
        return dp[sum];
    }
}

相关文章

  • [编程题] 双核处理

    一种双核CPU的两个核能够同时的处理任务,现在有n个已知数据量的任务需要交给CPU处理,假设已知CPU的每个核1秒...

  • 双核处理

    问题描述 一种双核CPU的两个核能够同时的处理任务,现在有n个已知数据量的任务需要交给CPU处理,假设已知CPU的...

  • 双核处理-python

    题目: 一种双核CPU的两个核能够同时的处理任务,现在有n个已知数据量的任务需要交给CPU处理,假设已知CPU的每...

  • 双核大脑训练微群运行方案

    1.什么是双核大脑训练? 我们的大脑和手机或者电脑系统一样存在这处理器,单核或者双核的的“核”指的是运行处理中心的...

  • 做双核对话人,让对话顺利进行

    我们的大脑当中也有两个内核,就像双核手机,一个核负责处理游戏,一个核负责打电话,这是双核手机。 脑袋里两个核干什么...

  • 英特尔CPU识别

    1、前缀 英特尔台式机/服务器处理器前缀: 字母E:采用酷睿架构的单核/双核处理器,如赛扬单核E430、酷睿2双核...

  • OC之并发编程

    1、什么是并发编程? 并发编程是指在一台处理器上“同时”处理多个任务。它的目标是充分的利用处理器的每一个核,以达到...

  • 如何营造安全的沟通环境

    一双核对话人。所谓的双核对话人。是一个核负责氛围,另一个核负责内容。这与我们上一节课先处理情绪再处理信息的内容联系...

  • 关键对话下-从打破认知到建立认知

    第二部分 希望大家能够做双核的对话人,什么叫双核对话人,我们大脑当中有两个核,一个核负责处理谈话的内容,一...

  • 《Python语言程序设计》第一章.练习与作业

    编程题 1.1 编程题 1.2 编程题 1.3 编程题 1.4 编程题 1.5 编程题 1.6 编程题 1.7 编...

网友评论

    本文标题:[编程题] 双核处理

    本文链接:https://www.haomeiwen.com/subject/ucjhrxtx.html