ABC #095,096 B

以下の二問は簡単だったので、ヌルい優勝をした。

今回の学び

  • #095 ⇒ リストの合計 = sum(l)
  • #096 ⇒ 降順のリスト l.sort(reverse=True)

 

# ABC 095 B - Maximum Sum

  1. すべてのドーナツを一個作ったと考えて、お菓子の素の総量Xからその分(miの合計)を引く。
  2. 残りの素で、一番コストの低いドーナツを可能な限り作る。

 

# ABC 096 B - Maximum Sum

以下 k回ループ

  1. 3つの整数を昇順に並び替える
  2. 先頭の整数を2倍にする

最後に3津の整数の合計を出力する。

ABC #097 B. Exponential

反省点

  • 答え候補となるリストを作って、そこから答えを求めようとしたが、境界の値を入れていなかった。
  • 二分探索の実装を忘れかけていた
  • for文中の break と continue を間違えてREになった
    (たぶんリストのlen()がやばいことになった)

 

ほぼ反省点のとおり。

# 反省点1

xとして入力された値がb^p = xとなる場合をリストに入れていなかった。数日前にも境界値の考慮ができていなかったので、ここをキッチリ抑えて問題を解けるようになりたい。

 

# 反省点2

これはもうどうしようもない

備忘録としては、

  1. whileを回す条件を left < right にする
  2. l[center] < xときはl[c]はxより小さいのが明らかなので、l[l]=l[c]+1にする必要がある。(しない場合はTLEになった。ACもあるっぽいけど、答えが正しいかは保障しない)

# 反省点3

これは反省というか学び。REの実態がつかめてなかったが、なんとなくつかめた。今回の場合はたぶん一時的に作っていたリストが大きくなりすぎた。

 

 

問題とは関係ないけれど、このメモを書いている最中にいきなり Hatena Blog のトップに戻って書いたものが消えたかと思った。

人のやる気の阻害原因は思わぬところに潜んでいる。

Surface Proを買った

TL;DR(一回使ってみたかった)

  • 最高
  • でも何に使うかもっと考えるべきだった
  • 迷いが金額ならば買うべきではない...のかもしれない

 

Surface Proを買った。

kakaku.com

 

理由は、買って放置していた Macbook Pro を使おうと思ったが、ディスプレイがイカれていて、修理に出したはいいものの、でも PC が必要だったというタイミングによるものが大きい。

あとはサブ PC として外出時の使用と昔のエロゲが少しやりたくなったためだ。最近は Mac でも Parallels とかでいい感じらしいんですけどどうなんですかね。さらにイラストレーターとして一発当てたくなったような気がする。

 

上記の理由により、悩みに悩んだがCorem3/4GB/128GBの最小構成のモデルが売っていたので Microsoft Store で買った。期間限定でタイプカバーもついていた。Microsoft Storeで買ったのは、30日間返品が効くので、スペックが低すぎたり、ペンタブとしての性能がよくなかった場合を考えた結果だった。

 

まあ結果的に修理に出した MacBookPro は買った Surface Pro が届くよりも一日早く戻ってきた。まじかよ。完全にバカじゃん。と思った。

 

早速後悔が押し寄せていたものの Surface Pro は使ってみると最高だった。

まあスペックが低いので、最初の Windows Update はもっさりしてたし、たまにカクついたりしてストレスがすごいことになるが低スぺなのでしょうがない。キーボードは BS と矢印キーが小さくてクソだし、HOME 系キーも一がクソだけれどまあしょうがない。

 

書いてて最高の PC ではない気がしてきたが、ともかく使い勝手はよい、と思う。本体は軽いし、キーボードは先ほどの点を除けば最高だし、タッチ操作可能なディスプレイも思ったより良い。Surface Pen での操作も思ったより面白い。キーボードが外せ、かつ本体角度もかなり自由に変えられるので、イラストも描ける気になってくる。

キャラの背景の書き方教室という本を買ったが、そもそもラフが描けないのでそっちもかわなければいけない。

 

これはあまり関係ないかもしれないが、Mac は今までずっと使ってきているので、環境が秘伝のウナギのタレのようになっているので、Surface Pro における環境構築の楽さに感動した。

 

結局 Mac は修理から戻ってきても使わずにノートの束の下に埋もれ、サブPCとして妥協した Surface Pro しか使わない状況になっている。

長年使用してきたiTunesがなかったら、iPhone を使っていなかったら 少なくとも自分の中の Mac の使用価値はほぼゼロに等しそうだ。

 

いや、これほど Surface Proが使いやすいならスペックいいのを買うべきだった。ヒカキンさんも仕事や趣味で使うものは(選べるもので一番)よいものを買うということを言っていた。

その言葉は大変心に響いたのでかなり良い感じの MacBook Pro を買った。30万のノート台を買った。

SurfaceWindowsだしそんなに使わないと思い、一番スペックが低いお得品を買ったが、今ではやりたいことの大半をこのPCでやっている。

 

ヒカキンさんの言葉は完全に正しかった。ただしちゃんとイメージと実体が適合しているときの話であるが。

 

というわけで高いもの?道具を買うときの教訓として、ちゃんと使うものには金を払え。それをためらうなら買おうとしているものはお前には分不相応だ。ほかのもので事足りる。そちらのほうが幸せだ。というのになった。

 

ABC #098 B

#099 Bはちょっとまだ解けない

2 ≦ N ≦100なので、分割の全通りを試せる。

各 i 周で

x = S1 ~ Si-1とy = Si~Snのスライスをとって、

set(x)とset(y)の積集合をとって長さを求めて

最大値を更新する。

 

ここから先にいくには発想だけじゃなくて

知識が必要になるなぁと思う。

ABC #100 B - Ringo's Favorite Numbers

完全に引っかかった

 

↓参考

ABC100 B - Ringo's Favorite Numbers - ferinの競プロ帳

 

#問題の概要

- 100でちょうどd回割り切れる数のうちn番目に小さい数を出力

- 0≦d≦2, 1≦n≦100

- 結論:n=100のときはn=101として計算する。

 

#引っかかったところ

n=100(100番目に小さい数を出力する)の場合。

たとえばd=0(0回割り切れる=割り切れない場合)のとき、

"n番目に小さい数"は"1,2,3,...,99,101"と続く。

100は「100で0回割り切れる100番目の数」ではないからだ。

(100は100で1回割り切れてしまうからね)

 

d=0のときと同様に、

d=1のとき、"100,200,300,...,9900,10100"

d=2のとき、"10000,20000,30000,...,990000,1010000"

となる。

 

 

 

世界は優しくないから僕だけでも優しくあろうと思うんだ

世界は優しくない。


人は傷つきたくない、弄びたい、目的がある、等の理由の元に行動するからだろうか。

人の行動は悪意にも善意にも基づいているのだろう。自分にとってそれはあまり適応できる環境でなかったと思う。


せめて自分は優しくあろう、善意で行動したいとは思う。

そのためにはやはり研ぎ澄ますほかない気がする。私の性質とは全く真逆の方向への努力が必要が必要だろう。

熱しにくく冷めにくい。即物的である思考を持つ私にとっては、人間たちが当たり前にこなしているように見えるものが見えない。手に触れるイメージすらわからない。


ただそう在ろうとするだけでも難しいのだから、やはり人生は厳しい。