yosupo06 / library-checker-problems

The problem data (Test case generator, judge's solution, task, ...) of Library Checker
https://judge.yosupo.jp/
Apache License 2.0
509 stars 117 forks source link

[テストケース案] Pow of Formal Power Series #1002

Closed MtSaka closed 9 months ago

MtSaka commented 1 year ago

ABC303 ExにてLibrary CheckerでACが出ている自分のライブラリのFormal Power Seriesのpowを使った際に、以下のテストケースでRuntime Errorが出ました。

2 1
1

原因は未だわかっていませんが、この問題に

1 2
1

のようなケースを追加すると良いと思いました。 以下が提出です。 Pow of Formal Power Series AC: https://judge.yosupo.jp/submission/96509 ABC303 Ex RE: https://atcoder.jp/contests/abc303/submissions/41775315

NachiaVivias commented 1 year ago

興味で原因特定したので報告します。

// LC の提出のほう
432    FPS integral()const{
433      const int n=(*this).size();          // log 取ったあとなので n = 0 で来る
434      vector<mint>inv(n+1);
435      inv[1]=mint(1);                      //  out of range

(この提出とは関係ないようですが)他の単項式が与えられる場合も確認するべきだと思います。

MtSaka commented 1 year ago

ご指摘ありがとうございます。 少しためしてみたところ、他の単項式でもおそらく同様の原因でRuntime Errorが出ているようです。 このような場合のために単項式のテストケースの追加をすると良い感じでしょうか。

NachiaVivias commented 1 year ago

後で気づいたのですが、他にも配列外参照がある( 451 行目)ようで、あくまで配列外参照なので落ちない場合がある、ということのようです。

このような場合のために単項式のテストケースの追加をすると良い感じでしょうか。

(私の意図を尋ねられた気がしました)私の気持ちとしては

というのがあります。

maspypy commented 10 months ago
1 2
1

を含む形で単項式をいくつか作ればいいかな

maspypy commented 10 months ago

↑誤操作です

maspypy commented 10 months ago
1 2
1

を含む形でいくつか単項式をつくります。

maspypy commented 10 months ago

と思ったら単項式ケース自体は存在しているなあ。

後で気づいたのですが、他にも配列外参照がある( 451 行目)ようで、あくまで配列外参照なので落ちない場合がある、ということのようです。

ということは、既に適切なテストケースは存在しているということですか?だとすると追加する意味があまりないですが。 (作業しようと思ったけど一旦放置します)

NachiaVivias commented 9 months ago

今ある単項式は、定数項以外であって掛ける回数 $M$ が大きく、場合分けではじかれるので(今回注目する) RE の原因にはなりえません。 そうでない(答えまで項が残る)ものは見当たらなかったので、追加する意味はあると思います。