- 競プロで言うメモリ制限とはスタック領域のことなのだろうか
- グローバル変数は静的領域にメモリ確保される
グローバルなら dp[10000][10000]も可能
- だけど「関数内ではスタック領域から確保するからやめようね」と書いてある
AOJでもたしかに通っている
http://judge.u-aizu.ac.jp/onlinejudge/review.jsp?rid=2103025#1
AtCoderでも通った
https://atcoder.jp/contests/abc126/submissions/5551743
静的領域でも2GBを超えてはダメ
- 大きくメモリ確保してみた
- するとコンパイラエラー
- ということはコンパイラが「この変数は消してしまってOK」ということはやっていない
main内で確保してもメモリ使用量が増えないのだが・・・
- https://atcoder.jp/contests/abc126/submissions/5551869
- コンパイラの最適化?と思って代入までしても増えなかった
学び?
- こういう現状であるので、「メモ化再帰したいけどテーブル容量が足りない」と思っても通ることがある