PAT 有假幣 遞推 難度2 詳細題解

2021-09-01 09:27:33 字數 671 閱讀 4347

看著就像遞推, 但這題的遞推並不能用陣列來表示, 因為會越界

遞推的三種寫法 1. 陣列 2.滾動陣列 3.遞迴

遞推的一般思路 1. 列舉幾組數 2.找題中的內在聯絡.

這題還是比較複雜的乙個遞推題目, 首先仔細理解題意, 可以想到每次把錢分成三組應該是最優的一種策略

因為無論當前比較的兩組是平還是不平, 都可以一下子排除3/2的資料

ps: 平了, 則假幣一定在沒稱的那組裡; 不平, 則一定在輕的那組裡

設p[i]為i個假幣時的最大稱量次數, 可以得出遞推式d[i] = d[(i+2)/3] + 1

//有假幣

#include #include #include #include #include #include #include #include using namespace std;

#define ms(x, n) memset(x,n,sizeof(x));

typedef long long ll;

const ll maxn = 1<<30+5;

int solve(int n)

int main()

有假幣 找規律

3 參考 有假幣時間限制 1000 ms 記憶體限制 32768 kb 長度限制 100 kb 判斷程式 standard 來自 小小 題目描述 居然有假幣!現在豬肉漲了,但是農民的工資卻不見漲啊,沒錢怎麼買豬肉啊。nowcoder這就去買豬肉,結果找來的零錢中有假幣!可惜nowcoder一不小心把...

牛客 有假幣

居然有假幣!現在豬肉漲了,但是農民的工資卻不見漲啊,沒錢怎麼買豬肉啊。nowcoder這就去買豬肉,結果找來的零錢中有假幣!可惜nowcoder 一不小心把它混進了一堆真幣裡面去了。只知道假幣的重量比真幣的質量要輕,給你乙個天平 天平兩端能容納無限個硬幣 請用最快的時間把那個可惡的假幣找出來。輸入描...

10 (未經評測)有假幣

有假幣 time limit 1000 ms memory limit 65536 kb description 居然有假幣!事情是這樣的,現在豬肉漲了,但是農民的工資卻不見漲啊,沒錢怎麼買豬肉啊。淵子這就去買豬肉,結果找來的零錢中有假幣!可惜淵子一不小心把它混進了一堆真幣裡面去了。現在知道假幣的重...