網易2017春招程式設計題集合

2021-08-11 11:33:07 字數 3797 閱讀 6100

1、

一種雙核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

揹包問題的變形

#include using namespace std;

int main()

,dp[20000]=;

cin>>n;

for(int i=0;i>a[i];

a[i]=a[i]/1024;

sum=sum+a[i];

}// cout<<"sum="<=a[i];j--)

}// cout<<"dp[sum/2]="<2、終於到週末啦!小易走在市區的街道上準備找朋友聚會,突然伺服器發來警報,小易需要立即回公司修復這個緊急bug。假設市區是乙個無限大的區域,每條街道假設座標是(x,y),小易當前在(0,0)街道,辦公室在(gx,gy)街道上。小易周圍有多個計程車打車點,小易趕去辦公室有兩種選擇,一種就是走路去公司,另外一種就是走到乙個計程車打車點,然後從打車點的位置坐計程車去公司。每次移動到相鄰的街道(橫向或者縱向)走路將會花費walktime時間,打車將花費taxitime時間。小易需要盡快趕到公司去,現在小易想知道他最快需要花費多少時間去公司。 

輸入描述:

輸入資料報括五行:

第一行為周圍計程車打車點的個數n(1 ≤ n ≤ 50)

第二行為每個計程車打車點的橫座標tx[i] (-10000 ≤ tx[i] ≤ 10000)

第三行為每個計程車打車點的縱座標ty[i] (-10000 ≤ ty[i] ≤ 10000)

第四行為辦公室座標gx,gy(-10000 ≤ gx,gy ≤ 10000),以空格分隔

第五行為走路時間walktime(1 ≤ walktime ≤ 1000)和taxitime(1 ≤ taxitime ≤ 1000),以空格分隔

輸出描述:

輸出乙個整數表示,小易最快能趕到辦公室的時間

輸入例子1:

2 -2 -2 0 -2 -4 -2 15 3

輸出例子1:

42

#include #include using namespace std;

int main()

cin>>gx>>gy;

cin>>wt>>tt;

int min1=(abs(gx)+abs(gy))*wt;

for(int i=0;i在幼兒園有n個小朋友排列為乙個隊伍,從左到右乙個挨著乙個編號為(0~n-1)。其中有一些是男生,有一些是女生,男生用'b'表示,女生用'g'表示。小朋友們都很頑皮,當乙個男生挨著的是女生的時候就會發生矛盾。作為幼兒園的老師,你需要讓男生挨著女生或者女生挨著男生的情況最少。你只能在原隊形上進行調整,每次調整只能讓相鄰的兩個小朋友交換位置,現在需要盡快完成隊伍調整,你需要計算出最少需要調整多少次可以讓上述情況最少。例如:

ggbbg -> ggbgb -> gggbb

這樣就使之前的兩處男女相鄰變為一處相鄰,需要調整隊形2次 

輸入描述:

輸入資料報括乙個長度為n且只包含g和b的字串.n不超過50.

輸出描述:

輸出乙個整數,表示最少需要的調整隊伍的次數

輸入例子1:

ggbbg

輸出例子1:

2

#include #include using namespace std;

int main()}}

// cout<5、小易擁有乙個擁有魔力的手環上面有n個數字(構成乙個環),當這個魔力手環每次使用魔力的時候就會發生一種奇特的變化:每個數字會變成自己跟後面乙個數字的和(最後乙個數字的後面乙個數字是第乙個),一旦某個位置的數字大於等於100就馬上對100取模(比如某個位置變為103,就會自動變為3).現在給出這個魔力手環的構成,請你計算出使用k次魔力之後魔力手環的狀態。 

輸入描述:

輸入資料報括兩行: 第一行為兩個整數n(2 ≤ n ≤ 50)和k(1 ≤ k ≤ 2000000000),以空格分隔 第二行為魔力手環初始的n個數,以空格分隔。範圍都在0至99.

輸出描述:

輸出魔力手環使用k次之後的狀態,以空格分隔,行末無空格。

輸入例子1:

3 2 1 2 3

輸出例子1:

8 9 7

#include#includeusing namespace std;

int main()

//構造快速冪矩陣

int mul[n][n];

for(int i=0;i>1;

int temp[n][n];

for(int i=0;i小易最近在數學課上學習到了集合的概念,集合有三個特徵:1.確定性 2.互異性 3.無序性.

小易的老師給了小易這樣乙個集合:

s =

需要根據給定的w,x,y,z,求出集合中一共有多少個元素。小易才學習了集合還解決不了這個複雜的問題,需要你來幫助他。 

輸入描述:

輸入包括一行: 一共4個整數分別是w(1 ≤ w ≤ x),x(1 ≤ x ≤ 100),y(1 ≤ y ≤ z),z(1 ≤ z ≤ 100).以空格分隔

輸出描述:

輸出集合中元素的個數

輸入例子1:

1 10 1 1

輸出例子1:

10

#include #include #include using namespace std;

int main()

}//auto it=unique(v.begin(),v.end());

// v.erase(unique(v.begin(),v.end()),v.end());

cout《常規的表示式求值,我們都會根據計算的優先順序來計算。比如*/的優先順序就高於+-。但是小易所生活的世界的表示式規則很簡單,從左往右依次計算即可,而且小易所在的世界沒有除法,意味著表示式中沒有/,只有(+, - 和 *)。現在給出乙個表示式,需要你幫忙計算出小易所在的世界這個表示式的值為多少 

輸入描述:

輸入為一行字串,即乙個表示式。其中運算子只有-,+,*。參與計算的數字只有0~9. 保證表示式都是合法的,排列規則如樣例所示。

輸出描述:

輸出乙個數,即表示式的值

輸入例子1:

3+5*7

輸出例子1:

56

#include #include using namespace std;

int main()

for(int i=0;i>s;

sm.insert(s);

}for(auto i : sn)

}cout<

網易2017秋招程式設計題集合

一 如果乙個數字序列逆置之後跟原序列是一樣的就稱這樣的數字串行為回文序列。例如 是回文序列,不是回文序列。現在給出乙個數字序列,允許使用一種轉換操作 選擇任意兩個相鄰的數,然後從序列移除這兩個數,並用這兩個數字的和插入到這兩個數之前的位置 只插入乙個和 現在對於所給序列要求出最少需要多少次操作可以將...

網易2017秋招程式設計題集合

程式設計題 回文序列 時間限制 1秒 空間限制 32768k 如果乙個數字序列逆置之後跟原序列是一樣的就稱這樣的數字串行為回文序列。例如 是回文序列,不是回文序列。現在給出乙個數字序列,允許使用一種轉換操作 選擇任意兩個相鄰的數,然後從序列移除這兩個數,並用這兩個數字的和插入到這兩個數之前的位置 只...

網易春招程式設計題2

小易有乙個長度為n序列,小易想移除掉裡面的重複元素,但是小易想是對於每種元素保留最後出現的那個。小易遇到了困難,希望你來幫助他。輸入描述 輸入包括兩行 第一行為序列長度n 1 n 50 第二行為n個數sequence i 1 sequence i 1000 以空格分隔 輸出描述 輸出消除重複元素之後...