日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

UVA - 12166 Equilibrium Mobile

發布時間:2025/3/14 编程问答 12 豆豆
生活随笔 收集整理的這篇文章主要介紹了 UVA - 12166 Equilibrium Mobile 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
/*
題目鏈接:
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3318


要點:
我覺得,這題主要是考察思維,而不是考察技巧
當然,還是有一點點技巧的,就是不用這個就會有些麻煩,比如map 的巧妙應用,就算是一個技巧


其實這題的思路也比較巧,就是對每個葉子結點,按照其深度,來推出如果以該葉子結點為基準,整棵樹的質量


然后便能統計出每種總重量,各由多少個葉子結點推出,我們選最多的那個總重量,來保證需要修改的葉子最少


本題的巧妙之處就在于,只要以深度為depth(depth從0開始)重量為w的砝碼為基準,那么就能求出整個天平的總重量,即w*2^(depth),在代碼中可以簡潔地表示為w<<depth。這樣,我們只用統計每個可能的總重量對應了多少不需要改動的砝碼,設一共有sum個砝碼,總重量為sumw的天平對應的砝碼個數是base[sumw],那么最終答案就是sum-max{base[i]}(i為所有可能的天平總重量)


查閱題解:
http://m.blog.csdn.net/hao_zong_yin/article/details/73028817
http://blog.csdn.net/u013555159/article/details/51356003
http://blog.csdn.net/crazysillynerd/article/details/43876123
http://www.bubuko.com/infodetail-714729.html

*/


#include <iostream> #include <string> #include <map> #include <cctype> #define rep(i, n) for (int i = 0; i < (n); i++) typedef long long ll; using namespace std;int main() {string s;map<ll, int> m;map<ll, int>::iterator it;int t;cin >> t;while (t--){cin >> s;m.clear();int depth = 0, leaves = 0, sw_max = 0; // 分別為 當前深度、當前已找到的葉子數,以及 same wight _max,表示葉子重量出現的最多次數,我們取這個最多次數,把與之不同的進行修改,最后得到的就是最小修改次數rep(i, (int)s.size()){if (s[i] == '[') depth++;else if (s[i] == ']') depth--;else if (isdigit(s[i])){leaves++;ll weight = 0;while (isdigit(s[i])){weight = weight * 10 + s[i++] - '0';}weight <<= depth;m[weight]++;i--;}}for (it = m.begin(); it != m.end(); it++)sw_max = max(sw_max, it->second);cout << leaves - sw_max << endl;}return 0; }

/*
? 而貼出的其他題解鏈接,基本上都是用bfs的思路,也即:
??
? 在每次出現逗號,且深度相對參數為0時(注意,這個地方有點奇妙,深度不是真正為0,而只是相對參數為0),將樹分為左子樹和右子樹
??
? 然后再對左右子樹按照這樣的思路來遞歸,直到這個參數表示的范圍內,找不到任何 "[",或是"]",或是","?
? 此時就說明,我們已經把該參數范圍里的所有特殊符號剔除,剩下的范圍可以表示一個葉子,我們就可以求葉子的重量,再結合其深度,推出根節點位置的重量
??
? 其他的思路,與上一種思路基本一致
*/



轉載于:https://www.cnblogs.com/mofushaohua/p/7789350.html

總結

以上是生活随笔為你收集整理的UVA - 12166 Equilibrium Mobile的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。