White scenery @showyou, hatena

If you have any comments, you may also send twitter @shsub or @showyou.

AtCoder Beginner Contest 121(ABC121)に参加しました

今回はCが楽でしたね。Dも気づけば楽に解けることを後で知りました・・(タイムオーバー)

早く緑になりたいけど、その為には毎回Cが解けるようにならないとなぁ・・

A:

(W-w) * (H-h)

https://atcoder.jp/contests/abc121/submissions/4515073

 

B:

1行ずつ足して0超えるか判定する

https://atcoder.jp/contests/abc121/submissions/4515073

 

C:

コストの小さい方から順に取っていけばOK。A_iはコストの小さい順にソートする。

https://atcoder.jp/contests/abc121/submissions/4520740

 

D:

愚直にxor取ったら当然の如くTLEだった。なんか周期性があるんじゃないかと思っていろいろ探っていたけど時間切れ。

 

解説を読んだところ、

  1. f(A, B) = f(0, A-1) ^ f(0, B)
  2. 偶数xがあるとき、x ^ (x + 1) = 1。よってf(0, y)は 奇数の時(y+1)/2を更に2で割った余り、偶数のときはy/2を更に2で割って、それとyでxor

の二点を使ったところ、すげー簡単に解くことができた。残念。

https://atcoder.jp/contests/abc121/submissions/4529836

gitでファイルを消す方法~真っ先にgit rmを勧める奴は地獄の業火に焼かれろ~

(この記事は以前Qiitaに掲載していたものの転載になります)

はじめに

git rmだと過去の履歴は消えません。git filter-branchを使いましょう。

https://qiita.com/go_astrayer/items/6e39d3ab16ae8094496c

はじめに

例えばパスワードファイルなんかを間違ってcommit & pushしたときに、リポジトリから完全に消したいといった事があるかと思います。その時に「git ファイル 消す 方法」などでググると先頭の方に

git rm --cache

とか解説している記事が見つかります。しかし、コレだとダメです。

どうダメなのか

gitの用語に詳しくないので解説が曖昧になります。

git rmだと、"ファイルを消した"という記録を追記します。なので最新のcommitからは見えなくなります。一方で過去の履歴には相変わらず残っています。githubならcommitというとこを見ていけば直ぐに見つかります。

その為、上のURLにある通りの形で実行して行く必要があります。

間違ってコミットしないようにするには

.gitignoreというファイルに、ファイル名を書き込むことで回避できます。詳しくはgitignoreで検索してみてください。

余談

本件、"git ファイル 完全に消す 方法"とかで検索すれば先頭に上の記事が出てくるのですが、git rmを勧めるTechAc◯ademyとかいうとこの記事も出てくるんですよね。それに初心者だと検索方法もわからないでしょうし、"git ファイル 消す 方法"とかで検索して安易にgit rmだけ実行して後で大惨事になりそうです。

とりあえず"git rm"と書いてあるメディアは信用しないほうが良いと思います。

会社による本の購入に対するお気持ち

  • 雑多*1な情報が入り混じっているネットに対して、本はある程度チェックが入っているため有用。ただし悪書も当然ある
  • 本は福利厚生。むしろ必要経費?大した額でもないし

福利厚生制度が充実している企業まとめ・成長編 | 就活サイトJobweb

  • 電子版と紙版のどちらが良いかは一長一短。人と共有して読むならDRMとか無いし紙の方がいい
  • 知的労働者に対して知識は資産、投資をケチるな
  • まず業務に直接結びつく本は会社で購入、直接でなくても有用な本も購入。悪書を避けるために、購入申請時に同僚のチェックはあっても良いかもしれない。しかし出来るだけ早めに申請は通すように

*1:というか最近はやってみた系が多いよね

AtCoder Beginner Contest 118(ABC118)に参加しました

A,BだけAC.Cももうちょっと考えればできたんだけどなぁ。。。

 

A

if B % A == 0:
  print(A+B)
else:
  print(B-A)

https://atcoder.jp/contests/abc118/submissions/4279404

B

個数を正直に数える

https://atcoder.jp/contests/abc118/submissions/4282452

C

恐らく約数だろうと思って四苦八苦して、出してみたもののWA.

終わってからreduce(fractions.gcd, A)の1行で済むことに気づいたorz *1

https://atcoder.jp/contests/abc118/submissions/4287847 WA

https://atcoder.jp/contests/abc118/submissions/4292284 AC, 時間外

D

なんかdfsでNを使い切る個数にして、大きい順に取れればいいかなと考えたが、時間内に解けず。

dp・・dpなのか。あとで見直そう。

https://img.atcoder.jp/abc118/editorial.pdf

*1:当然importは必要。atcoderpythonは3.4なのでimport fractionsになる

Sトレイン 豊洲行きに乗った

3/16のダイヤ改正で、所沢発豊洲行きのSトレインが廃止されるので、記念に乗ってみました。(https://www.seiburailway.jp/news/news-release/2018/2019daiyakaisei.pdf)

 

所沢17:20発 - 飯田橋18:04着

 

・・えっと、前後の車両見ても、自分しか乗っていなかったです。途中で保谷からおじいさんが乗ってきましたが、なぜか後者できないはずの石神井公園で降りていきました。恐らく豊洲への送り込みの為に走らせてるんでしょうけども、完全に空気輸送です。

しかも早いかというとそうでもなく、

等の理由で遅いです。こりゃ廃止されるわ。

恐らく夕方下りのSトレインはまだ需要があると思うので、今後は上りは回送か普通列車として送るのでしょうか?

freeeで確定申告をしてきました - 修正申告編 -

http://showyou.hatenablog.com/entry/2019/02/05/213310 で確定申告をしてきたのですが、間違いがあったので先日修正申告を行ってきました。

修正内容

2019年1月に入金された、2018年12月作業分の報酬を入れていなかった

どういうことか?

通常freeeで銀行口座の残高と連動させていると、報酬が「入金された日付」で登録しがちです。しかし報酬は確定された日を基準日として登録しなければならず、12/31分の仕事の報酬はその年(今回の場合、2018年分)として計上しなければなりません。

明確なソースは出せないですが、「確定申告 報酬 年またぎ」等でググると例が出てきます。税務署にも確認を取ったところ、この様に指示が出ました。

 

まあ発生日を自動で判断するのは、さすがにfreeeでもできないのでしょうけど、ちょっと罠ですね(moneyfoward, 弥生は出来るのか知りません)。

Data Pipeline Casual Talkに行ってきた #DPCT

抽選に通ったので、表題のイベントに参加しに、エムスリー社まで行ってまいりました。運営の@tetsuroitoとエムスリー様に感謝。

Tweethttps://togetter.com/li/1318940参照。

あとで細かいこと書くかもしれませんが、軽く感想を書きます。

現場からは以上です。