-
,0));
你在這裡有乙個錯誤。
你應該先在地圖中尋找 s,然後你就找不到它了,0));
因此,如果在地圖中找不到 s,則應新增一句話
另外,在輸出結果的時候,應該要遍歷地圖才能找到最大的,直接選擇最後乙個,這顯然是行不通的。
map需要很多時間,你先糾正一下我上面的一些錯誤,如果變成tle,你應該考慮使用trie tree來做。
-
#include
#include
#include
using namespace std;
int main()
int t;
string s;
while(cin>>t &&t)
map map1;
map ::iterator pos;
string temp="";
int max=0;
for(int i=0; i>s;,0));
map1[s]++
pos=;pos--;
您的輸出是 map1 中的最後乙個,而不是數字最大的輸出。
應該設定乙個 max,記錄當前字數最高的那個,最後輸出將直接為 *if(map1[s]>max)。
max=map1[s];
temp=s;
cout
-
abaa
B:你對這個資料說的不對,我對STL一無所知,你自己看看吧。
嘗試一下,你應該得到結果。
-
現在我們知道了起點 m 和終點 n,我們現在需要找到乙個一般規則來盡快將 m 變成 n。
從圖中可以看出,假設起點位於三角形的頂部,例如 1、2、4、5、7、9 等
那麼從它到它下面的某一層點的距離是相同的,比如 1 到 2 和 1 到 4。 例如,2 到 10 和 2 到 12 和 2 到 14。 等一會。
根據這個定律,我們可以想象,如果 n 在以 m 為頂點的三角形下方,那麼只要找出中間有多少層,問題就解決了。
如果 m 不是三角形的頂點,我們可以找到 m 所在的最小三角形,例如 6 是 2,8 是 4,13 是 7......
如何判斷它是否低於某個點,我們首先知道終點n的值,我們可以計算出它所在的層數。
然後我們知道 m 和 n 之間層數的差異,我們可以計算出頂點的左右邊界,以及如何判斷它。
如果你在那裡,模式很容易找到。 如果沒有,則在左右邊界中找到最近的邊界點 n 並計算差值,即額外的步數加上到該圖層的步數。
如果要找到乙個模式,假設頂點 f(x) 在 x 層中,那麼它與下一層 x+1 層的右邊界是 f(x)+2*x-1,左邊界是 f(x)+2x+1,依此類推,從頂點到邊界的步數每隔一層加 2。
當然,你也可以找到通用表示式,我不會那樣做。
純手工玩,可能表達不清,可以一起**。
-
在那個**上,你想輸出最短的通道,例子是6 12
也就是說,6-》7-》13-》12,通道3或6-》5-》11-》12,通道也是3
1 如果電腦沒有安裝惡意軟體,或者上網時產生了惡意程式,建議使用騰訊電腦管家等軟體清理垃圾,檢查並殺死惡意軟體,完成後重啟電腦,就有可能解決。 >>>More