网易2017春招[编程题]双核处理
来源:互联网 发布:ubuntu哪个版本最稳定 编辑:程序博客网 时间:2024/06/06 20:43
链接:https://www.nowcoder.com/questionTerminal/9ba85699e2824bc29166c92561da77fa
来源:牛客网
[编程题]双核处理
- 热度指数:36833时间限制:1秒空间限制:32768K
- 算法知识视频讲解
一种双核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
输出
9216
package go.jacob.day912;import java.util.Scanner;public class Demo1 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int[] arr = new int[n];int sum = 0;for (int i = 0; i < n; i++) {arr[i] = sc.nextInt() >> 10;sum += arr[i];}int[][] res = new int[n + 1][sum / 2 + 1];for (int i = 0; i < n; i++) {for(int j=sum/2;j>=0;j--){if(j>=arr[i]){res[i+1][j]=Math.max(res[i][j], res[i][j-arr[i]]+arr[i]);}else{//else条件必须有res[i+1][j]=res[i][j];}}/*for (int j = 0; j < sum / 2; j++) {if (j + 1 >= arr[i]) {res[i + 1][j + 1] = Math.max(res[i][j + 1], res[i][j + 1 - arr[i]] + arr[i]);}}*/}System.out.println(Math.max(res[n][sum / 2], sum - res[n][sum / 2]) << 10);sc.close();}}
解法二:
package go.jacob.day912;import java.util.Scanner;public class Demo2 {public static void main(String[] args) {Scanner sc=new Scanner(System.in);int n=sc.nextInt();int[] arr=new int[n];int sum=0;for(int i=0;i<n;i++){arr[i]=sc.nextInt()>>10;sum+=arr[i];}//如果只用一维数组,j必须从sum/2慢慢减小。如果用二维数组,则无所谓int[] dp=new int[sum/2+1];for(int i=0;i<n;i++){for(int j=sum/2;j>=arr[i];j--){dp[j]=Math.max(dp[j], dp[j-arr[i]]+arr[i]);}/*错误的解法:不能从头往后遍历,会修改上一轮的计算 * for(int j=0;j<sum/2;j++){if(j+1>=arr[i]){dp[j+1]=Math.max(dp[j+1], dp[j+1-arr[i]]+arr[i]);}}*/}System.out.println(Math.max(dp[sum/2], sum-dp[sum/2])<<10);sc.close();}}
阅读全文
0 0
- 网易2017春招[编程题]双核处理
- 网易2017春招编程题:双核处理 [python]
- 双核处理--网易2017春招实习笔试编程题1
- 双核处理(网易2017春招笔试题)
- 网易2017春招笔试 双核处理 01背包
- 双核处理问题(2017网易春招)
- 2017网易春招 双核处理(DP)
- 网易2017春招笔试<双核处理>Java代码
- 网易2017春招实习生编程题
- 2017网易春招编程题
- 网易2017春招编程题集合
- 网易2017春招笔试真题编程题集合
- 集合--网易2017春招实习笔试编程题7
- 网易2017春招笔试编程题 分饼干
- 网易2017春招[编程题]赶去公司@Java
- 网易2017春招[编程题]消除重复元素
- 网易2017春招[编程题]魔力手环
- 网易2017春招[编程题]集合@Java
- caioj1064 DP
- Java中的一对一关联关系(一)
- Swing学习----------QQ登录界面制作(一)
- MyEclipse 环境配置总结
- request
- 网易2017春招[编程题]双核处理
- mybatis IncompleteElementException:Could not find result map java.lang.String
- 使用hibernate5.2.10编写hibernate helloworld
- 最长回文子串
- 快速排序(分而治之策略及C语言实现)
- 【bzoj3733】[Pa2013]Iloczyn
- Swing学习----------QQ登录界面制作(二)
- Spring Boot第二弹:Spring Boot热插拔
- 有趣的安全游戏--哈密顿行动(四)突破程序的锁