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 34intt;
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 23int 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 23int
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個醫生為員工做身體檢查...