演算法題 雙核處理

2021-08-01 17:00:50 字數 1329 閱讀 9720

時間限制: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的倍數。

輸出描述:

輸出乙個整數,表示最少需要處理的時間

輸入例子:

5 3072 3072 7168 3072 1024

輸出例子:

9216

這是個陣列分割問題,見程式設計之美2.18

基本思路是動態規劃 定義s

k 為前k個元素的任意i個項之和vi

(只考慮取值小於sum/2的情況)的集合 sk

= 則狀態轉換方程為: sk

=sk−

1u

#include 

#include

#include

#include

using

namespace

std;

void func(vector

& length)

long

long sum = accumulate(length.begin(), length.end(), 0);

long

long half = sum / 2;

vector

vec_1,vec_2;

vec_1.resize(half + 1);

vec_2.resize(half + 1);

vec_1[0] = 1;

for (auto i = 0; i < length.size();++i)

}vec_1 = vec_2;

}long

long tmp;

for (auto i = half; i > 0; --i)

}cout

<< 1024*(sum - tmp);

}int main()

func(length);

return

0;}

雙核處理器ARM DSP

針對當前應用的複雜性,soc晶元更好能能滿足應用和 的需求,整合眾多介面,用arm做為應用處理器進行多樣化的應用開發和使用者介面和介面,利用dsp進行演算法加速,特別是 的編譯碼演算法加速,既能夠保持演算法的靈活性,又能提供強大的處理能力。傳統的晶元,基本是乙個處理器核心,或者是通用處理器如arm,...

CPU 什麼是雙核處理器

雙核處理器 dual core processor 雙核處理器是指在乙個處理器上整合兩個運算核心,從而提高計算能力。雙核 的概念最早是由ibm hp sun等支援risc架構的高階伺服器廠商提出的,主要運用於伺服器上。而台式電腦上的應用則是在intel和amd的推廣下,才得以普及。目前intel推出...

雙核處理 網易2017春招實習筆試程式設計題1

時間限制 1秒 空間限制 32768k 一種雙核cpu的兩個核能夠同時的處理任務,現在有n個已知資料量的任務需要交給cpu處理,假設已知cpu的每個核1秒可以處理1kb,每個核同時只能處理一項任務。n個任務可以按照任意順序放入cpu進行處理,現在需要設計乙個方案讓cpu處理完這批任務所需的時間最少,...