題目大意就是給你乙個連通圖,保證沒有環,讓你計算所有點到點0的距離,如果距離大於d,sum++;最後輸出sum的值。
一開始被嚇到了,還以為是搜尋樹。。後來洗了把臉後發現題目本質還是把所有的點遍歷一遍(就是bfs ...orz)
沒腦子的就直接寫去了。。
結果第一發記憶體超了。。難掩我的震驚之情。。orz
題目要求memory limit:
32768
kb,我好像用了37560k ,2333333333
//果然單純的佇列是沒有好結果的。。虧我還打了vector..
// 壞毛病要改,一直不會讓queue和vector在一起 =v=
#include#include#include#include#includeusing namespace std;
struct str ;
queueq[100005];
queueq;
int main()
s.next=0;
q.push(s);
struct str node;
while(!q.empty())
}while(!q[s.next].empty())
}printf("%d\n",sum);
} }return 0;
}
後來還是死性不改的只用了vector,結果過了233 下面ac**:
#include#include#include#include#includeusing namespace std;
vectorq[100005];//存邊沒什麼好說的
vectorq[100005];//q[i]表示q[i]中的所有的點到點0的距離為i
int main()
sum = 0;
scanf("%d%d",&n,&d);
n--;
while(n--)
next=0;
q[0].push_back(next);
int cnt = 0;
int count = 1;
for(int i = 0;i < q[cnt].size(); i++)
if(count == n)break;
if(i ==q[cnt].size()-1)
}for(int i = d+1;i < 100005; i++)
printf("%d\n",sum);
} }return 0;
}
HDU 4707 Pet 鄰接表實現
解題報告 題目大意是在無向圖g中有n個點,分別從0 到n 1編號,然後在這些點之間有n 1條邊,可以保證這個圖是連通圖,並且每條邊的長度都是1,然後讓你求出從編號為0的點出發,到其它的點的距離大於d的點的個數。這題的點的個數有500000個,而記憶體限制為32m,很顯然,開鄰接矩陣不行,但這題實際上...
U盤恢復(最後的最後還是量產)
前天,我的寶貝u盤突然壞了,真是壞的莫名其妙,上午我還用它列印東西,下午就出問題。最開始的問題 u盤裡所有檔案變成ddd.ddd。每個檔案都是這樣,不明格式,1.06g 你在逗我!原來的檔案都看不到了。因為u盤裡有重要 不敢格式化,然後從晚上尋找解決辦法。基本有兩種說法,一種是u盤中毒 一種是u盤硬...
最後想的還是你啊
狹長,較窄的一條小河,弟弟在小河裡面邊游泳邊擺手呼喊著岸上的哥哥,而岸上的哥哥一臉笑意,祥和的一幕也是平常的一幕。一條大魚突然出現衝撞了弟弟一下,瞬間發生的事情讓人措手不及,但是哥哥清楚的預感到接下來會發生些什麼事情,他大聲呼叫著弟弟讓他垂直的游向河岸,那樣才是最短路徑,才能讓他弟弟以最短的時間遊上...