time limit: 25 sec
memory limit: 162 mb
submit: 80
solved: 15 [
submit][
status][
discuss]
1 2 1
2 3 1
31 3 2
3 1 1
1 2 3
2n< = 100000
play with tree by amber [
submit][
status][
discuss]
本來想複習路徑求交的。。結果就這麼wa飛了= =
怎麼求交的話。。在3700的題解有,,,就不再說了
網上的題解都不說怎麼判斷相遇啊。。。。。自己寫的時候情況沒考慮清楚。。。。。
如果路徑交是乙個點,判斷到達時間是否相等即可
如果是一條路徑,分兩類討論
1.兩隻螞蟻在路徑上同向走
如果同時到達起點,或是後抵達的螞蟻比先抵達的螞蟻先離開,都會相遇
2.反向走
分別列舉乙隻螞蟻到達起點的時間,看這個時間是否在另乙隻螞蟻爬的總路程的時間段內,如果在,肯定相遇。。因為另乙隻螞蟻會跑過來= =
尤拉序優化lca就不說了= =
#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;
const int maxn = 2e5 + 20;
const int n = 18;
typedef long long ll;
struct e
e(int to,int w): to(to),w(w){}
};int n,m,dfs_clock,t,ans,l[maxn][n],ans[maxn][n],bin[maxn],len[maxn]
,s[maxn],t[maxn],v[maxn],lca[maxn],dfn[maxn],a[5],dis[maxn];
bool ok[1010][1010];
vector g[maxn];
bool cmp(const int &x,const int &y)
int getint()
void clear()
}void dfs(int x,int fa)
}int lca(int x,int y)
int dis(const int &x,const int &y)
void pre_work()
m = getint();
for (int i = 1; i <= m; i++) }
void work(const int &x,const int &y,const int &i,const int &j)
else
}else }
bool judge(int x,int i)
int main()
{ #ifdef dmc
freopen("dmc.txt","r",stdin);
#endif
for (int i = 1; i < maxn; i++)
{ bin[i] = (1<
螞蟻的故事
老婆生活記錄 螞蟻是地球上最常見的昆蟲,數量最多的昆蟲種類。螞蟻好小,只有幾公釐,乙隻螞蟻的重量只有 0.005 克,很多動畫片裡都有它的身影,百威啤酒的廣告也讓小小螞蟻變成了最可愛的小東西,對這樣的乙個小可愛,你會怕它嗎?今天,閒暇之餘對幾個朋友做了乙個小小的調查,問他們是否怕螞蟻?片刻,朋友們的...
墜落的螞蟻
一根長度為1公尺的木棒上有若干只螞蟻在爬動。它們的速度為每秒一厘公尺或靜止不動,方向只有兩種,向左或者向右。如果兩隻螞蟻碰頭,則它們立即交換速度並繼續爬動。三隻螞蟻碰頭,則兩邊的螞蟻交換速度,中間的螞蟻仍然靜止。如果它們爬到了木棒的邊緣 0或100厘公尺處 則會從木棒上墜落下去。在某一時刻螞蟻的位置...
螞蟻的故事
每天,小螞蟻很早來上工,並且一來就開始做事。她的生產力很高,並且工作愉快。身為老闆的獅子,非常驚奇螞蟻能自行工作而不須監督。他認為在沒有監督下的螞蟻生產力是如此的好,如果有人監督的話她的生產力應該會更好才對 因此他招募了有豐富經驗的蟑螂作為監督員,蟑螂以擅長撰寫優良報告而聞名。蟑螂的第乙個決定是設立...