題目大意是說,兩個槽能夠插在一起,並保證每一列的高度不高於3,保證最短長度。
思路很簡單,取短字串遍歷長字串的每乙個位置,紀錄下位置,並取最短即可。
//習題3-11 換抵擋裝置
void caculate17()
else
int minlen = (int)strlen(min_arr);
int maxlen = (int)strlen(max_arr);
int min = minlen + maxlen;
// 從最長數字的左邊開始對齊
for (int j = 0; j < maxlen; j++)
j_temp--;
}if (result)
else
if (temp < min) }}
if (strlen(min_arr) != strlen(max_arr))
j_temp++;
}if (result)
else
if (temp < min) }}
}printf("%d\n", min);
}}// 題目同上
void caculate18() else
int maxlen = (int)strlen(max_arr);
int minlen = (int)strlen(min_arr);
int min = maxlen + minlen;
int result = 0;
for (int i = -minlen; i < maxlen + minlen; i++) }}
// 短字串在左邊,部分重合
if (ok && i < 0)
}//短字串在右邊,部分重合
if (ok && i > maxlen - minlen)
}// 完全重合(最優解)
if (ok && i >= 0 && i + minlen <= maxlen)
}if (result)
else
}}// 大神思路,簡單高效
void caculate19()
}if (ok)
}printf("%d\n", ret);
}}int main()
呃,我的實現是第一種,沒ac,應該是只過了部分的測試用例,但我不知道怎麼改了~ UVA 1588 紫書習題3 11換抵擋裝置
大致題意 給你連個長度分別為n1,n2且每列高度只為1或2的長條,然後將他們拼在一起,高度不能超過3,問他們拼在一起的最短長度。本體思路 剛開始我的思路是先讓短的在下面,讓上面的不動,通過移動下面的長條來逐一比較,當長條從左到右移動完了之後,就能找到最短。但是 交上去之後 樣例能通過但是一直wa,可...
UVA 1588 換低擋裝置
思路 模擬題 注意下標i j 和j的對應字串的匹配關係 注意要模擬從最左邊到最右邊 剛開始做莫名其妙wa,檢查不出錯誤,後面重寫了才過的 ac include include includeusing namespace std char s1 105 s2 105 用字串讀方便 int main ...
UVa1588 Kickdown 換抵擋裝置
給出兩個長度分別為n1,n2且每列高度只為1或2的長條,需要將它們放入乙個高度為3的容器,求出能夠容納他們的最短容器長度。模擬插入,從第乙個介面開始插,如果不滿足條件就跳到下乙個介面,滿足條件時跳出函式輸出答案即可。includeusing namespace std int slo char a,...