2013騰訊程式設計馬拉松初賽(3月20日)

2021-09-06 09:01:52 字數 2199 閱讀 8890

1 第一題 小q系列故事——屌絲的逆襲

表示這道題基本沒什麼演算法,學過計算機語言的應該都能搞定吧。

2 第二題 小明系列故事——買年貨

這道題直接用01揹包問題就可以解決了,只是除了錢的限制,還有積分的限制和免費的情況,就是這點在除錯程式的時候出了點小問題,總是wa。狀態可以定義為dp[x][y][z],x表示錢的,y表示積分的,z表示免費的狀態,然後其它的和揹包問題差不多了,只是維數到了3維。

1 #include 2 #include 34

#define max(a,b) a > b ? a : b

5int

n, v1, v2, k;

6 typedef struct

_thing

7thing_t;

1213

int main(void)14

40if (y - data[i].b >= 0 && dp[j][y - data[i].b][x] != -1)41

45if (x - 1 >= 0 && dp[j][y][x - 1] != -1)46

50 dp[j][y][x] =max(temp, dp[j][y][x]);

51if (ans 52 ans =dp[j][y][x];53}

54}55}

56}57 printf("

%d\n

", ans);58}

59return0;

60 }

3 第三題 吉哥系列故事——臨時工計畫

這個題目就直接用dp了,dp[x]表示前x天內獲得的最大工資數,狀態方程為:

dp[x] = max ,其中c[y + 1][x]表示某份從第y + 1天到第x天的工作的工資,1 <= y <= x - 1 且 c[y + 1][x]不為0。

1 #include 2 #include 34

intt;

5int

m,n;

6int data[101][101];7

int ans[101];8

9int main(void)10

23 ans[0] = 0;24

for (j = 1; j <= m; j ++)

2531 printf("

%d\n

", ans[m]);32}

33return0;

34 }

4 湫湫系列故事——植樹節

思路:根據題目選的3個人互不認識或者都認識則關係相同,從這種關係相同的反面來看就是3個人只有兩個認識,最後乙個人不認識,所以可以求這種反面情況的個數,對於第i個人,可以選他自己和他的朋友乙個即a中情況,剩餘乙個人選他不認識的人(即非朋友)即n-a-1中情況,所以sum +=a*(n-a-1),sum表示總情況數,由於自己和朋友計算的時候會多算一次,所以最後要sum /= 2才是反面的情況總數。

1 #include 2

3int main(void)4

19 sum /= 2

;20 sum /=all;

21 printf("

%.3lf\n

", 1 -sum);22}

23return0;

24 }

5 威威貓系列故事——籃球夢

首先算出b隊最終的得分sb,再算出要贏b隊至少要得的分sum = sb + 1 - a(a為a隊當前的得分),然後窮舉滿足後面得分不小於sum的所有情況。

1 #include 2

3int

a, b, t;

4__int64 ans;

5int

sum;

67 __int64 f(int

start) /*計算階乘*/816

return

ans;17}

1819

int main(void)20

40return0;

41 }

2013騰訊程式設計馬拉松初賽(3月24日)

1 題目一 小q系列故事 最佳裁判 這道題就是找最大值和最小值的題目,學過c的應該都沒問題的。2 題目二 小明系列問題 小明序列 這道題目是最長上公升子串行的一種變形吧,就是子串行中相鄰數的下標之差必須大於d 開始看錯題目,以為是相鄰數之差大於d,結果wa了好多次,最後看了別人的discuss才恍然...

2013騰訊馬拉松程式設計初賽3月21日1001

1001 小q 系列故事 電梯裡的愛情 time limit 0.1seconds memory limit 65536k 電梯其實是個很曖昧的地方,只有在電梯裡,小q才有勇氣如此近距離接近女神,雖然覺得有點不自在,但次數多了,女神也習慣了小 的存在,甚至熟悉到彷彿不說上句話自己也都覺得不合適了。可...

2013騰訊程式設計馬拉松初賽 鄭廠長系列故事 體檢

鄭廠長系列故事 體檢 time limit 1.0 seconds memory limit 32768k 鄭廠長不是正廠長 也不是副廠長 他根本就不是廠長 只是公司的乙個碼農 這次總共有n位員工接受體檢,並且每個員工都需要做k 個專案的檢查才算完成整個體檢的流程。現在來了 m個醫生為員工做身體檢查...