はじめての二次元配列
TopCoder Statistics - Problem Statement
topcoderで二次元配列を扱うのは初めてだ。初めてだったのでコードは他人のひとのものを拝借した。感謝。
SRM 477 DIV2 - yowa の TopCoder 日記 - TopCoder部
問題:守銭奴の国王は海岸をもっているやつから金をむしりとることにした。この国は蜂の巣のように六角形の土地で埋められている。土地には陸と海の二種類のみ。国全体の海岸線の長さを返せ。それが金の合計になるから。
注意:タテが偶数番目の土地は右にシフトしている。 参考画像↓
二次元配列をvectorで表現
Topcoderでは二次元配列はとても重要だ。なぜいままでやってなかったのか僕は不思議でならない。
string a[ ] ={"..#.##", ".##.#.", "#.#..."}; vector <string> b(a,a+(sizeof(a)/sizeof(a[0])));
- stringをvectorで表す。sizeofを使うと中身が変わっても大丈夫。
cout <<" [y][x] y=2,x=1: "<< b[2][1]<<endl; h=kingdom.size(); w=kingdom[0].size();
- hは列、wは行。y,xの順に表示される。
こんな感じで、二次元配列も少しずつ好きになりたい。