C_and_CPP 板


LINE

http://online-judge.uva.es/p/v100/10089.html 稍微翻譯一下題目 -------------------------------------------------------------------------- 咖啡杯有三種大小 但最近發現有很大需求包裝相同數量的三種杯子 所以 為了趕緊符合要求 ACM 決定要將一些未銷售產品包裝拆開 重新包裝為相同數量的三種杯子, 而且不能有未包裝杯子剩下 找出這種組合是否存在 --------------------------------------------------------------------------- 假設有四種包裝 (1, 2, 3), (1, 11, 5), (9, 4, 3), (2, 3, 2). (1,11,5) 代表這個包裝中第一種咖啡杯 1 個,第二種咖啡杯 11 個,第三種咖啡杯 5 個 剛好找到一解,第一種包裝三包 + 第三種包裝一包 + 第四種包裝兩包,如下: 3 * (1,2,3) + (9,4,3) + 2 * (2,3,2) == 16 * (1,1,1) 另外一個範例:假設有四種包裝 (1, 3, 3), (1, 11, 5), (9, 4, 3), (2, 3, 2) 但是沒有解 請問高手要怎麼解這一題︿︿? 用了高中數學的克拉馬法則每次挑三個不同包裝去解 答案和範例輸入輸出一樣 可是答案上傳到線上判斷是錯誤的 >.<~ 問了好多人,想了很多天還是解不出來...... 錯誤的程式碼如下: #ifndef ONLINE_JUDGE #include <fstream> #endif #include <iostream> using namespace std; bool check(int p, int q) { // 檢查分數是否為正數 if(p > 0 && q >= 0) return true; else if(p < 0 && q <= 0) return true; else return false; } int main() { #ifndef ONLINE_JUDGE ifstream cin("ACM10089.txt"); #endif int c, d, d1, d2, d3, i, j, k, n, x, y, z; bool ans; while( cin >> n ) { if(n == 0) break; ans = false; int a[n][3]; //c = n * (n - 1) * (n - 2) / 6; //cout << "c = " << c << endl; for(i = 0; i < n; i++) for(j = 0; j < 3; j++) cin >> a[i][j]; //for(i = 0; i < n; i++, cout << endl) //for(j = 0; j < 3; j++) //cout << a[i][j] << " "; for(i = 0; i < n - 2; i++) // 0-1 { for(j = i + 1; j < n - 1; j++) // 1-2 { for(k = j + 1; k < n; k++) // 2-3 { for(x = 0, d = 0; x < 3; x++) { y = (x + 1 == 3) ? 0 : x + 1; z = (x + 2 > 2) ? x - 1 : x + 2; d += a[i][x] * a[j][y] * a[k][z]; d -= a[k][x] * a[j][y] * a[i][z]; } //cout << "d = " << d << endl; if(d == 0) // 分母不得為零 break; for(x = 0, d1 = 0; x < 3; x++) { y = (x + 1 == 3) ? 0 : x + 1; z = (x + 2 > 2) ? x - 1 : x + 2; d1 += 1 * a[j][y] * a[k][z]; d1 -= a[k][x] * a[j][y] * 1; } //cout << "d1 = " << d1 << endl; if(check(d, d1)== false) break; for(x = 0, d2 = 0; x < 3; x++) { y = (x + 1 == 3) ? 0 : x + 1; z = (x + 2 > 2) ? x - 1 : x + 2; d2 += a[i][x] * 1 * a[k][z]; d2 -= a[k][x] * 1 * a[i][z]; } //cout << "d2 = " << d2 << endl; if(check(d, d2)== false) break; for(x = 0, d3 = 0; x < 3; x++) { y = (x + 1 == 3) ? 0 : x + 1; z = (x + 2 > 2) ? x - 1 : x + 2; d3 += a[i][x] * a[j][y] * 1; d3 -= 1 * a[j][y] * a[i][z]; } //cout << "d3 = " << d3 << endl; if(check(d, d3)== false) break; ans = true; } if(ans) break; } if(ans) break; } if(ans) cout << "Yes" << endl; else cout << "No" << endl; } #ifndef ONLINE_JUDGE system("pause"); #endif return 0; } -- 歡迎大家一起加入Intel Philanthropic Peer-to-Peer Program !!! 這項「英特爾慈善『點對點連線』計畫」旨在經由網際網路,把數百萬部個人電腦連結 起來,加速研發治療白血球過多症血癌)的藥物,從而把新藥上市的需要時間縮短約 一半。對本計畫有興趣者,可以到http://www.grid.org/download/gold/download.htm 網站,下載該程式。 一旦一批資料處理完畢,下次電腦連接上網際網路時,不論經由寬頻撥接,電腦便會 --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.115.200.77







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Gossiping站內搜尋

TOP