New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[問題案] Enumerate Triangles #442
Comments
全出力は流石に不味いです 10^8ぐらい整数を出力しそうで、まともな時間で出力しきれないと思います(あとサーバーが壊れそう) enumerate primesと違って適度に間引くという感じでもないはずなので、カウンティングかハッシュかですね ( #149 ) |
Counting Trianglesならこれで問題ないです |
入力でランダムな x, y を与えて Π(y+(x+a)(x+b)(x+c)) mod P を出力させるなどを検討しました (時間計算量的な余裕は分からないです) |
確かに 変にミスる可能性とか考えるより証明可能なものを使えばいい気がする |
一様性を仮定すると、出力数 / modの確率で0になることと、modをlong longにするとC++以外が壊れることを考えるとよくなさそうです |
各頂点にランダムな値を割り当てる (入力) |
良さそう |
強いて問題を挙げるなら全部Z_pの演算だから変な解法が生まれそう まあジャッジのコンセプト的に大した問題ではなく、これを回避すると衝突確率は証明できなくなるが |
では 問題名: Enumerate Triangles 入力
出力
で大丈夫でしょうか |
の方が良さそうです 他は大丈夫です |
Pは特段強い理由がないなら998244353でお願いします |
ここに書くべきか分からないのですが、 |
x_i = 0 があるとその頂点を無視することになりませんか(制約で弾いた方がいいと思います) |
嘘解法が通っています。
で落とせます。頂点のインデックスはランダムにした方がいいかもしれません。 |
一応間違えたときに(入力は固定されてるのでランダムではないんですが)ランダム性を仮定すれば十分な確率で検出できる、というモチベでハッシュを選定したので、x_i = 0を許さないと証明が壊れて微妙な感じになるかもしれません 実はx_i = 0を許さなくても証明が出来る or もっといい何かが示せる かも 誰かHELP |
0 を抜いても 3 / (P - 1) は保証できるので抜いても大丈夫ですが、抜く必要もないという認識です |
ごめんなさい。通ってしまいました。 |
ある程度の密グラフはありますが、最大ケースは入っていません |
N=447 M=99681 の完全グラフで、想定解が手元で 150ms でした |
|
ありがとうございます。嘘を落とさなくていいなら今のままでもいいかもしれませんね。 |
そうですね 別に制約増やさなくてもいい気がします |
問題名: Triangle Enumeration
参考資料: https://www.slideshare.net/catupper/trianguler
問題概要
単純無向グラフが与えられる
3 頂点であってどの組も互いに結ばれているものを列挙
入力
出力
制約
N <= 10^5
M <= 10^5
検討事項
The text was updated successfully, but these errors were encountered: