1. 程式人生 > >2018騰訊實習生筆試程式設計題——歌單拼接

2018騰訊實習生筆試程式設計題——歌單拼接

思路

動態規劃思想,把A和B歌單程式設計變成陣列:[A,A,A,B,B,B],然後,如果需要長度為k的歌組合f(n,k), n表示前n個數,k表示歌單長度為k. 則,f(n,k)=f(n-1,k)+f(n,k-len[n-1]);k-len[n-1]表示陣列中第n-1個數使用的情況下,還需要長度為k-len[n-1]個歌單的數量。

code

#include "stdafx.h"
#include <iostream>
#include <vector>
using namespace std;

int main()
{
    const int MOD = 1000000007
; int n; cin >> n; int l1, l2, n1, n2; cin >> l1 >> n1 >> l2 >> n2; vector<int> len(n1 + n2); for (int i = 0; i < n1; ++i) { len[i] = l1; } for (int i = n1; i < n1 + n2; ++i) { len[i] = l2; } vector<vector
<int>
>
results(n1 + n2, vector<int>(n + 1)); for (int i = 0; i < n1 + n2; ++i) { results[i][0] = 1; } results[0][len[0]] = 1; for (int i = 1; i < n1 + n2; ++i) { for (int j = 1; j <= n; ++j) { if (j - len[i] >= 0) { results[i][j] += results[i - 1
][j - len[i]]; } results[i][j] += results[i - 1][j]; results[i][j] %= MOD; } } cout << results[n1 + n2 - 1][n]; return 0; }

相關推薦

2018實習生筆試程式設計——拼接

思路 動態規劃思想,把A和B歌單程式設計變成陣列:[A,A,A,B,B,B],然後,如果需要長度為k的歌組合f(n,k), n表示前n個數,k表示歌單長度為k. 則,f(n,k)=f(n-1,k)+f(n,k-len[n-1]);k-len[n-1]表示陣列中

2016實習生筆試程式設計:有趣的數字

import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while(sc.ha

2018年網易計算機視覺實習生筆試程式設計

牛牛總是睡過頭,所以他定了很多鬧鐘,只有在鬧鐘響的時候他才會醒過來並且決定起不起床。從他起床算起他需要X分鐘到達教室,上課時間為當天的A時B分,請問他最晚可以什麼時間起床輸入描述:每個輸入包含一個測試用例。 每個測試用例的第一行包含一個正整數,表示鬧鐘的數量N(N<=1

華為2018實習生筆試程式設計

題目描述:有N個骰子,同時投擲出去,向上面的數字之和為A。那麼輸入為N個骰子,請計算出A,和A出現的概率。概率值,小數點保留5位。樣例輸入:1樣例輸出:[[1,0.166667], [2,0.166667], [3,0.166667], [4,0.166667], [5,0.

網易2018實習生筆試程式設計

平面內有n個矩形, 第i個矩形的左下角座標為(x1[i], y1[i]), 右上角座標為(x2[i], y2[i])。 如果兩個或者多個矩形有公共區域則認為它們是相互重疊的(不考慮邊界和角落)。 請你計算出平面內重疊矩形數量最多的地方,有多少個矩形相互重疊。 輸入描述:輸入包括五行。 第一行包括一個整數n(2

科大飛-筆試程式設計-數蚊子

數蚊子 時間限制:C/C++語言 1000MS;其他語言 3000MS記憶體限制:C/C++語言 65536KB;其他語言 589824KB 題目描述: 現在有一個蚊帳,假如用矩形體來表示一個蚊帳,為了方便描述,將該長方體的三個面放在X,Y,Z座標面上。那麼該矩形體的一個頂點就是(0

校招程式設計之快遞分身術

題目描述 城市裡有3000條橫向的道路和3000條縱向的道路,分別從1開始編號知道3000,。相鄰兩條平行道路的間距為1。 我們用(x,y)表示第x號橫向道路和第y號縱向道路。N個需要送快遞的點坐落在這些交點上。小Q只能沿著這些道路送快遞,而且只能在道路的交叉點改變方向。

2018實習生招聘筆試題

1 假定一種編碼的編碼範圍是a ~ y的25個字母,從1位到4位的編碼,如果我們把該編碼按字典序排序,形成一個數組如下: a, aa, aaa, aaaa, aaab, aaac, … …, b, ba, baa, baaa, baab, baac … …, y

網易2017春招實習生筆試程式設計集合(C++方向)

挺早之前做好一直想寫一篇部落格分享一下,但是後來給忘了…C++方向一共十二道程式設計題,可能和別的方向有一些出入。題目總體的難度不大,有些題有些小坑,適合進階者練練手,本文比較長,建議直接進github看程式碼,如有錯誤歡迎指出,也歡迎大家討論! 程式

2017年江蘇電信暑期實習生筆試程式設計

今天參加了江蘇電信的暑期實習的筆試,筆試的題型為30道選擇題,2道程式設計題。總體難度不大,考的都是些關於通訊和計算機的基礎知識。選擇題考Linux系統的基本操作,一些C++和java的基本程式(難度和計算機二級差不多),通訊網的知識。 對於兩道程式設計題,難

完美世界2016實習生筆試 [程式設計] 最長遞增子序列A(C++)

來源:https://www.nowcoder.com/test/1669710/summary 題目: 給定一個長度為N的陣列,找出一個最長的單調自增子序列(不一定連續,但是順序不能亂)例如:給定一個長度為8的陣列A{1,3,5,2,4,6,7,8},則其最長的單調遞增子

網易2018屆校招筆試-程式設計

參加了網易校招筆試,做程式設計題的時候可能是太緊張了,沒有做的很好,所以事後又分析了一遍,現在整理一下做題的思路及解題過程。 1、魔術幣 小易準備去魔法王國採購魔法神器,購買魔法神器需要使用魔法幣,但是小易現在一枚魔法幣都沒有,但是小易有兩臺魔法機器可以通過投入x(x可

2017滴滴實習生筆試程式設計

Question 一共兩道: 1、句子中的單詞逆序 Ex:I have a dream 輸出I evah a maerd 2、俄羅斯套娃,每個套娃尺寸長為x,寬為y。A套娃只有長和寬都大於B套

筆試題程式設計——紙牌遊戲

題目描述 牛牛和羊羊正在玩一個紙牌遊戲,這個遊戲一共有n張紙牌,第i張紙牌上寫著數字ai。 牛牛和羊羊輪流抽牌,牛牛先抽,每次抽牌,他們也可以從紙牌堆中任意選擇一張抽出,直到紙牌被抽完。

美圖2018校招前端筆試程式設計陣列去重

題目只能記個大概了,裡面比較重要的就是陣列去重 重點:用空間換取時間,一層迴圈實現了陣列的去重,時間複雜度o(n)。 1. 先對arr_copy排序(注意啊arr_copy是有序陣列了) 2.

2017暑假實習生招聘筆試程式設計(1)

演算法基礎-字元移位 小Q最近遇到了一個難題:把一個字串的大寫字母放到字串的後面,各個字元的相對位置不變,且不能申請額外的空間。 你能幫幫小Q嗎? 輸入描述: 輸入資料有多組,每組包含一個字串s,且保證:1<=s.length<=10

9.16 筆試程式設計ac程式碼

思路: 求lcm(1, 2, …, n, …, m) = lcm(n + 1, …, m) 根據算數基本定理 #include <cstdio> #include <cstring> #include <cmath> #i

筆試程式設計--小Q上廁所

題目 小Q今天在上廁所時想到了這個問題:有n個數,兩兩組成二元組,差最小的有多少對呢?差最大呢? 輸入 輸入包含多組測試資料。 對於每組測試資料: N - 本組測試資料有n個數 a1,a2…an - 需要計算的資料

2017校招筆試程式設計-拼湊零錢

今天剛剛參加了2017年的騰訊校招線上筆試,其中有一道程式設計題是這樣的:小明很富有,有幣值為2^n(n=0,1,2,3)的硬幣各兩個,即有兩個1塊錢的硬幣,有兩個2塊錢的硬幣,有兩個四塊錢的硬幣。。。,現在輸入一個正整數數m(0<m<10^18),請問從小明的

2017秋招筆試程式設計--素數對

給定一個正整數,編寫程式計算有多少對質數的和等於輸入的這個正整數,並輸出結果。輸入值小於1000。 如,輸入為10, 程式應該輸出結果為2。(共有兩對質數的和為10,分別為(5,5),(3,7)) 輸入描述: 輸入包括一個整數n,(3 ≤ n <