UVA 12166 天平性質 字元處理

2021-07-26 13:30:42 字數 744 閱讀 3548

這題思維難度很大,關鍵是總結這個性質。

1.天平性質:某個秤砣重量為w,高度為h,如果要讓這個天平平衡並且以這個秤砣為基準,那麼整個天平的總重量為w*(2^h)

2.利用這個性質:題目要求秤砣數量改變最少,就是說盡量多的不改變秤砣重量,把總質量作為主鍵,統計總質量相同的秤砣個數,

最後計算出數量最多的,就是不用改變質量的最大秤砣數量,用所有秤砣數減去不用改變質量的最大秤砣數量就是答案。

3.當然,用這個性質,會讓某些秤砣的質量變為小數。

4.注意,總重量可能會變成long long型別。

ac**:

#include#include#includeusing namespace std;

#define max(x,y) (x) > (y) ? (x) : (y)

typedef long long ll;

const int maxn = 1e6 + 5;

char str[maxn];

mapha;

int node; //numbers of node

void dfs(int l, int r, int h)}}

else

}int main()

printf("%d\n",node - ans);

ha.clear();

}return 0;

}

如有不當之處歡迎指出!

UVA12166 修改天平

修改天平 time limit 3000msmemory limit 0kb64bit io format lld llu 題意 天平類似乙個二叉樹,要求修改最少的節點使天平平衡,可以利用搜尋來一次遍歷每個結點,如果以此節點重量 w 為準,那麼整棵樹的總重量就是 w depth 只要這個總和相等,即...

UVa 12166 修改天平

題意 給乙個深度不超過16的二叉樹,代表乙個天平。每根杆懸掛在中間,每個秤砣的重量已知,至少修改多少個秤砣的重量才能讓天平平衡?要讓天平平衡,必須以其中乙個秤砣作為標準,然後修改其餘的秤砣。當以深度為d,值為x的葉子節點作為標準時,可以發現此時天平的總質量為x 因此可以遍歷二叉樹的每個葉子節點,在這...

DFS特訓 修改天平(UVA12166)方法很巧妙

解題思路 題解思路值得借鑑。因為題目要求最小變動的秤砣數量,所以至少有乙個秤砣是不變的。我們可以固定某乙個子秤砣,根據其深度 確定為dfs引數之一 得到整個天平的重量,若其他子秤砣固定求得的天平重量與其相等,則表示固定某乙個秤砣,其餘這些無需變動。因此我們可以求得各個天平重量出現的次數,即定義乙個m...