2010年6月27日星期日

[練習] SRM 473

250

Bounded ⇔ 走四個循環 返回起點



500

圓周上平分佈的N點中,任取三點成一直角三角形
⇔ 其中兩點連起來是直徑

所以問題轉化為統計直徑數目,M
答案 := M × (N - 2)

直接應用公式 + while-loop mark visited 選點
在最壞情況會很慢 (?)
建議實現一種類似 Linked List 的 Disjoint Set
FOR(i,0,n) parent[i] = i;
FOR(i,0,m) {
LL j = (a*i*i + b*i + c) % n;
j = find(j); // Find parent
vis[j] = 1;
parent[j] = find((j+1)%n);
}

沒有留言:

發佈留言