名もなき未知

エンジニアリングとか、日常とかそういうのをまとめる場所。アクセス解析のためGAを利用、Googleに情報を送信しています。商品紹介のためAmazonアフィリエイトを利用、Amazonに情報を送信しています。記事に関しては私が書いていない引用文を除いて自由にご利用ください。

今日の競プロ(2015/04/07)

ちょっとやばいので手を抜きます….

ARC 001 A

arc001.contest.atcoder.jp

配列使って一文字づつ見ながら分析する方法が正しいんだと思う(この方が処理早いと思う)
ぼくは文字列がそんなに長くないので,count関数使って何回出ているのか確認し,min, max取りました.

追記

やっぱりfor文で見た方が明らかに早い.(実行時間がcount版226ms, for文版142ms)

ARC 001 B

arc001.contest.atcoder.jp

いろいろなアプローチがあると思いますが,温度差が10以上ならばかならず10増減.10より小さいなら,その値に応じた値を増減みたいな….
これくらいなら総当りする方法よりも計算して場合分けしたほうが早いと個人的には思っている.

ARC 002 A

arc002.contest.atcoder.jp

if文をまとめてかけたの気持ちがいい.

Y = int(input())
print("YES" if (Y % 400 == 0 or Y % 100 != 0) and Y % 4 == 0 else "NO")

先に400で割れるかどうかを見てから判断すればいいんですよね! 条件が簡単にかけて良いですね!

ARC 002 B

arc002.contest.atcoder.jp

最初ひどいミスしててこれでいいと思ってた.

not (Y % M == 0 and Y % D == 0)

はい,もちろんダメです.素因数が1つしかないものとかが存在するパターンだと死ぬね.2015/05/05とかダメですね.

はい,こうですね.

not (Y % M == 0 and (Y // M) % D == 0)

あと出力フォーマットミスったので,ちゃんと覚えてないとダメですね^^;

ARC 003 A

arc003.contest.atcoder.jp

学生が好きそうな問題だなあ(白目)
特にコメントなし,だって入力を処理するだけだもん.
ARC 001 A 同様に配列使ってfor文で数え上げたほうが多分早い.ぼくはめんどくさいのでcount使うけど.



明日もバイトが有ったり,明後日は重要な用事があったり… ちょいちょい忙しいですね.
軽い問題を解いて,できるだけ埋めていこう.