なが月・4日目

4日目

午前

ABC127のA-Dを解いた。D問題は10^9個の要素をもつリストでk以下のカード枚数を管理して小さいほうから書き換える=数を減らしていこうという愚直解を考えたが最大値付近にカードが固まっていた場合10^9回の値チェック×10^5回の書き換えでどう考えても爆発するので解説を読み1st AC解を見た。1st AC解は別解のアプローチをとっており、「B_j枚書き換えてもよいとはすなわち、Aのカード群に加えてC_jと書かれたカードをB_j枚持っており、そのいずれからも選ぶことができる」ということで、その中から合計を最大化するようにA_iまたはC_jの値が大きい方から順に合計N枚選ぶだけの、よく考えたら自明な考え方だった。

午後

C言語の続きを6章から。ダブルクォート文字列は文字そのものを、シングルクォート文字列はその文字コード番号を意味するということである。そしてchar[] foo = "whoa";とサイズを指定しないでも代入できることが分かった。7章のstring.hはstrlen, strcpyなどがあるということだけ頭に入れて先へ進んだ(C言語で文字列を扱いたいとは思わないし、扱う予定もないので)。多次元配列を扱う部分では、配列を返せないので副作用によってどうにかするところにも顔をしかめたが、何より配列の要素数を得るのにあたって、第2次元の要素数 = sizeof(arr[0]) / sizeof(arr[0][0]);としなければならない、さらに引数に取る配列は第2次元以降サイズ省略不可だということで大変つらい思いをしたし、メモリが貴重だった時代の残滓を感じた。来学期の授業でC++を使えないか聞いたほうがいいかもしれない。言語仕様による制約に苦しめられ諦観に達するまで2時間を費やした。

https://helpx.adobe.com/photoshop/how-to/apply-filter-effects.htmlではハンドペイント風に見せるためレイヤーマスクを設定した写真にフィルターをかけるということだったが、仕上がりを見るにハンドペイントというより背景を抜いた傘の写真とグラデーションを合成しただけに見えてあまり効果が見られなかった。

https://helpx.adobe.com/photoshop/how-to/composite-images-with-layer-blend-mode.htmlは適切なレイヤー描画モードを選んで不透明度を調整しレイヤーマスクでぼかす、という見慣れたワークフローだった。

https://helpx.adobe.com/photoshop/how-to/remove-unwanted-color-cast.htmlは環境光によって本来とは異なる色になってしまった写真を修整するもので、これは有用だった。昔RAFミュージアムで撮ったP-47D(KL216)は照明のせいでかなり緑がかってしまっていたが、胴体下部のグレー部分(cf.RAFの解説ページ)をサンプルすることで肉眼で見た時の印象に近づけることができた。胴体上部が茶色であることをもう少しわかりやすくしたいが、それは彩度調整のチュートリアルを見た時にやることにする。

f:id:napier_0b:20190805203521j:plain