麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

UVa 12166 - Equilibrium Mobile(二叉樹+遞歸處理括號匹配+模板)

2019-11-10 20:32:47
字體:
來源:轉載
供稿:網友

題目鏈接

題目

Mark下大神的博客:http://morris821028.github.io/ 簡直太強了。 題解鏈接:http://morris821028.github.io/2014/10/03/oj/uva/uva-12166/#PRoblem


題目大意:

給一個天平表達式,請問至少要調整幾個權重才能使之平衡。(直接復制來的)


解題過程:

自己大概廢了一個小時想一個特麻煩的解法,首先想的是自頂向下的平衡,然后dfs下去還是從必須從葉節點開始平衡。

于是想自底向上平衡,每次把可以平衡成的質量和調整的次數傳給上一層,比如調整[1,2],給上一層傳遞三個狀態:調整2到1,質量變為1,調整1次;調整1變為2,質量變為2,調整一次;兩個都一起調整到一個任意的數,調整兩次。 顯然這樣需要給每個節點開辟一個空間儲存狀態,妥妥爆內存。

想了一個小時只是這個結果,于是去百度了下,看到: 那麼可以得知道假使一個權重不改,最後的天平重量為何。 假使 depth 上的權重 w 不改,則最後的天平重量就是 w * pow(2, depth)。

于是想到建樹,統計下葉子節點所在的層數,然后拿每個葉子節點跑一邊,結果是O(n^2)。

后來看到這個博客確實是驚艷到了……


題目分析:

這里分析下下面的代碼好了。

這里map的使用和遍歷可以做模板了,要是我的話,就桶排然后遍歷一遍了…

這個遞歸寫的真是太強了??!

然后就是sscanf的用法,可以拿來做模板,要我的話,專門寫一個字符串轉整數的函數了,麻煩的要死。


AC代碼:

#include <cstdio>#include <cstring>#include <map>using namespace std;char exp[1123456];map<long long, int> R;void dfs(int l, int r, int dep){ if (exp[l] == '[') { int p = 0; for (int i = l + 1; i <= r - 1; i++) { if (exp[i] == '[') p++; if (exp[i] == ']') p--; if (p == 0 && exp[i] == ',') { dfs(l+1, i-1, dep+1); dfs(i+1, r-1, dep+1); } } } else { int w; exp[r+1] = '/0'; sscanf(exp+l, "%d", &w); R[(long long)w<<dep]++; }}int main(){ int testcase; scanf("%d", &testcase); while (testcase--) { scanf("%s", exp); R.clear(); dfs(0,strlen(exp) - 1, 0); int sum = 0, mx = 0; for (map<long long, int>::iterator it = R.begin(); it != R.end(); it++) sum += it->second, mx = max(mx, it->second); printf("%d/n", sum - mx); } return 0;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 亚洲第一成av人网站懂色 | 亚洲最新黄色网址 | 男男羞羞视频网站国产 | 亚洲第一精品在线 | v天堂在线视频 | 欧美成人a | 激情夜色| 91社区电影 | 国产一区日韩精品 | 性插视频| 一级免费观看 | 午夜精品成人 | 免费观看一区二区三区视频 | 国产一级不卡毛片 | 中文日韩字幕 | 久久久久久久久久久久久久久久久久 | 久久久久久久91 | 99精品国产成人一区二区 | 亚洲片在线观看 | 亚洲国产精品久久久久久久久久 | 久久精品79国产精品 | 欧美一级黄色录像片 | 久草免费新视频 | 欧美另类在线视频 | 久久精品亚洲欧美日韩精品中文字幕 | 在线看免电影网站 | 日韩做爰视频免费 | 国产免费v片 | 日韩精品一区二区三区中文 | a级欧美| 欧美高清视频一区 | 免费看欧美黑人毛片 | 国产在线精品区 | 毛片大全| 看毛片电影 | 一级网站 | 91 免费看片 | a网站在线 | 成人免费观看av | av在线播放地址 | 成人性生活视频 |