Re: [ACM ] 10541

看板C_and_CPP作者 (^^"....)時間14年前 (2010/03/23 01:07), 編輯推噓2(2016)
留言18則, 5人參與, 最新討論串2/2 (看更多)
※ 引述《weiyung (迪西)》之銘言: : 題號:10541 -stripe : http://uva.onlinejudge.org/external/105/10541.html : 遇到的問題: : WA : 有問題的code: (請善用置底文的標色功能) : http://nopaste.csie.org/1d204 : 補充說明: : 一直找不到錯誤,數字小時答案是正確的 : 可是數字很大的時候出來的值就會有錯 : 可是看了好幾遍自己的code還是不知道哪裡錯了@@ : 請各位高手幫幫忙囉 感激不盡 以 N=25 code= 2 3 2 8 1 為例 此CODE要能正確的最小長度為 2+1+3+1+2+1+8+1+1 = 20 (因為黑格子皆須以"至少一個"白格子隔開) 又因N=25 所以我們還有 25-20=5 個白格子可以隨意放在"黑格子群"之間 之後就是排列組合的問題 全部排列數為 5白+5黑s = 10! 但黑格子們需要按照順序 所以為 10!/5! 呃....是吧? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.171.66.187

03/23 01:17, , 1F
嗯 你數學真好
03/23 01:17, 1F

03/23 01:19, , 2F
現在才後悔我高中數學太差 > <
03/23 01:19, 2F

03/23 01:48, , 3F
我覺得這個比較像重覆組合的問題 5個白格子放在黑格子
03/23 01:48, 3F

03/23 01:48, , 4F
群前後6個位子裡,可能的放法是H(5,6)=C(5+6-1,5)=252
03/23 01:48, 4F

03/23 02:33, , 5F
樓上說的是!以階乘來算會有重複的CASE,我耍笨了QQ
03/23 02:33, 5F

03/23 08:29, , 6F
公式︰C(L - K + 1, L - 2 * K + 1)
03/23 08:29, 6F

03/23 08:29, , 7F
題目規定fit 50 digit,應該是要做大數了。
03/23 08:29, 7F

03/23 08:31, , 8F
我現在做這題來驗證公式的正確性。
03/23 08:31, 8F

03/23 08:56, , 9F
把Ksum和K個弄混了,等AC了修正公式。
03/23 08:56, 9F

03/23 09:48, , 10F
戰倒。修正︰C(M, N) =
03/23 09:48, 10F

03/23 09:49, , 11F
M = (L - Ksum - K + 1) + (K + 1) - 1;
03/23 09:49, 11F

03/23 09:49, , 12F
N = L - Ksum - K + 1;
03/23 09:49, 12F

03/23 09:53, , 13F
附上code僅供參考。http://nopaste.csie.org/667d9
03/23 09:53, 13F

03/24 01:03, , 14F
謝謝各位大大的解答 我已經找到我的問題囉 我想我應該是在
03/24 01:03, 14F

03/24 01:04, , 15F
進位時可能有錯 我後來把所有每個陣列內的數字相加之後
03/24 01:04, 15F

03/24 01:04, , 16F
才做carry的動作 這樣出來的答案就可以AC囉
03/24 01:04, 16F

03/24 01:05, , 17F
作了ACM真的可學到很多XD 以前都認為整數只要用int跟long
03/24 01:05, 17F

03/24 01:06, , 18F
就可以解決一切@@
03/24 01:06, 18F
文章代碼(AID): #1BfwFiRe (C_and_CPP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #1BfwFiRe (C_and_CPP)