錯因分析
♦對檔案的儲存不夠恰當,例如第一題和第三題的題目,我是真的很憤怒,第一題在我寫了乙個多小時,終於樣例成功.可是當我再一次開啟檔案時,裡面只有我最開始的**,誰可以告訴我這是為什麼(我絕對儲存了,還試了樣例),還有第三題,也是莫名失蹤,那個躺拿35分的題,我也是0分,真是憤怒(;′⌒`)
♦對字串及其相應的應用掌握不夠,例如今天的第二題,如果想簡單一點,還是很好實現的,但是我由於對字串掌握不牢靠,對那些簡單的問題處理起來特別麻煩,寫了好久還是放棄了
學習方法
♦今天學習了gql大佬的寫題方法,首先把自己的思路給寫了出來,然後在大致思路的基礎上去敲題,感覺思路清晰明快了了許多,找起錯誤來也更加快了,所以今天第一題我本來都放棄了,可我絕對思路很清晰,就照思路一步一步改,錯誤也還找的快
♦我今天改了我好久以來的乙個習慣,以前我做題都是從第一題做起,然後死磕到最後一題,導致後面的即使很容易實現也沒有做,今天我敲了一下第一,二題,發現總不能一遍過,由於我在題目下寫了思路,我也就不怕到時候回來看題時不知道自己寫的是什麼,於是我就放心大膽的去看後面的題目,發現最後以題特別簡單,然後就對啦(也就只有最後一題讓我今天得了分(;′⌒`))
題目分析:
第一題: bags (bags)
題目描述
ldl和好朋友們要去爬山啦!他們一共有 k 個人,每個人都會背乙個包。這些包的容量是相同的,都是 v。可以裝進揹包裡的一共有 n 種物品,每種物品都有給定的體積和價值。在 ldl 看來,合理的揹包安排方案是這樣的:
1.每個人揹包裡裝的物品的總體積恰等於包的容量。
2.每個包裡的每種物品最多只有一件,但兩個不同的包中可以存在相同的物品。
3.任意兩個人,他們包裡的物品清單不能完全相同。
在滿足以上要求的前提下,所有包裡的所有物品的總價值最大是多少
輸入資料
第一行有三個整數:k、v、n
第二行開始的 n 行,每行有兩個整數,分別代表這件物品的體積和價值。
輸出資料
只需輸出乙個整數,即在滿足以上要求的前提下所有物品的總價值的最大值。
輸入樣例
2 10 5
3 12
7 20
2 45 6
1 1輸出樣例
57資料約定
總人數 k<=50。
每個揹包的容量 v<=5000。
物品種類數 n<=200。
其它正整數都不超過 5000。
輸入資料保證存在滿足要求的方案。
思路這種型別的題有乙個固定的名稱,叫多人揹包,意思就是讓你求前k個優解,那很顯然的這個就是要用dp來解
1.狀態設定
f[i][k]
其中i表示是裝到了第幾個物品,而k代表的是第幾優解
2.轉移方程
if(f[j][c1]>f[j-v[i]][c2]+w[i])
now[++cnt]=f[j][c1++];
else now[++cnt]=f[j-v[i]][c2++]+w[i];
這是乙個解決最優解和次優解的方式
你當前的最優解是取f[j-v[i]]
的最優解+w[i]與當前最優解f[j][c1]
的max,如果確定是由之前最優解推出來的,則次優解就是在f[j-v[i]]
的次優解+w[i]和當前最優解之間取max,依次類推.......(tips由於我換了乙個now陣列來儲存這次的最優解及k優解,所以在f陣列中的上一步最優解和k優解是沒有變化的,這也便於我們去尋找這一步1~k優解)
3.迴圈方式和揹包是差不多的,只是在內部多加了乙個1~k優解的確定
4.我輸出1~k優解之和就可以了
第二題:substr (substr)
考試(1月5日)
題目 讀入乙個正整數n。要求將n寫成若干個正整數之和,並且使這些正整數的乘積最大。例如,n 13,則當n表示為4 3 3 3 或2 2 3 3 3 時,乘積 108為最大。輸入n 輸出思路 如何分解這個n,才能使乘積最大,這是此題的核心。首先明白乙個定理 兩正數相差越小,其乘積就越大 證明過程如下 ...
2023年5月24日 2023年5月24日
2010年5月24日那天晚上,我下班回家,吃完飯,雖然我不記得是自己做的飯還是買回來吃的.我捧起了 第五版 開始了我的程式生涯.在那之前是我研究了6個月還是8個月開了我的傳奇私服,十分對戰 接著是2個月的運營後花光了所有積蓄,聽起來挺嚇人,其實就5000塊而已.在這之前,是我剛開始參加工作,就感覺自...
2023年5月24日 2023年5月24日
今天是第六年.我可能要感謝那天的自己吧,窗外是熙攘的歡聲笑語,我吃完了晚飯趁著太遠還沒下山,捧著我那本 去年到今年這一年,先是度過了找工作的困擾.之後憤然離開布斯來到了北京.當時加入一家不是做遊戲的公司,我是很抗拒的.畢竟是工作後第一次離開遊戲圈,加入家具圈.當時的考慮就是一是投了那麼多簡歷,那個於...