LoginSignup
1
1

More than 5 years have passed since last update.

gcc8でのDPの境界条件について

Posted at

gcc8の-O3でDPの挙動が怪しくなる模様。

yukicoder No324 落ちてた閉路グラフのはまやんはまやんさんのソースを使います(注:https://twitter.com/yukicoder/status/1015940088423841793 に書かれているものですが、取り急ぎです。後ほど自作のソースに置き換える予定。)

-O3に未定義動作を送るとコードが潰されるのは有名な話ですが、このソースのif(j)dp[j-1]は上流でjの範囲を指定している(よってj!=0ならばj>0がいえる)にもかかわらず未定義動作になるようであるのが原因。そこでif(j>0)に置き換えると直ります。

しかし、if(j!=0)としている答案って結構多そうなので、影響大きそうです。

1
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1