Competitive Programing Typical 90 Problem day16

Day 16.

code is below.

 

N = int(input())
a,b,c = map(int,input().split())
answer = 10**5
for x in range(10000):
  if a*x>N:
    break
  for y in range(10000):
    if a*x+b*y>N:
      break
    z = (N-a*x-b*y)
    if z%c ==0:
      answer = min(answer, x+y+z//c)


print(answer)
  • 全部固定して、それを一個一個試す、というのがグリッドサーチ
  • でも、一部の条件だけ固定すれば、他は固定しなくても、チェック出来ることもある。
    • 今回なら、余りが割りきれるかだけさえ知れば良かった。
    • なので、zは調べなくても済む。
    • これが、工夫した全探索
      • 必要な所だけ、全探索すること。
  • もう少し面白みを出したい。
    • 問題の本質は、全部調べ上げるのは、時間的にしんどいこと。
    • 人生の長さは実数だが、ー無限から無限までの定義域ではなく、(おそらく)有界である。
      • 上限、下限がある。
        • 小さすぎる時は、意識がないから、人生とは言えない?
        • 老いすぎると、意識はどうなる?
    • なので、今回は、人生について考えてみたい。こちらの文書をまとめる。
    • 死が害悪であること。
    • エピクロスの主張
      • 死という状態自体は害悪ではない。
      • 死んだら、死んだということで苦しむ事も無く。
      • 生きている限り、死はない。
      • 死んでも、その時に、自分はない。
    • 死へのプロセスへの恐怖や、未来の不在への恐怖
      • 死へのプロセス
        • 死にゆくなかで、苦痛を感じる
      • 未来の不在
        • 価値を置くことは、未来を指向した行為
        • 自分自身の人生に価値を置く
          • 有形資産
    • 経験可能性
      • 何かが悪だとわかるには、経験できないといけない
      • 死ぬ人も、死を経験できない
      • 不死身の人も、死を経験できない
    • 異なる種類の生、としての死
    • 注意点
      • 長続きが良いとは限らない
      • 未来の幸福は自分のものではない
      • 死ぬことで失うのは、未来の不確実性
    • 本質的に悪でなくても、認識として悪
    • 有限性
      • 人生の有限性に意味を見いだす、受け入れる。
      • でもこれは難しい。死を理解出来ず、基盤として人生を肯定することも難しい
      • 死を、あるがままに、生の事実として、肯定する。
        • 生物学的事実
      • 有限性を受け入れるのは、
        • 今に感謝し、
        • まだ遭遇していない死に感謝する
    • 人生の目標
      • 不確実性、自分で決められないことが多すぎ、大きすぎ
      • 達成よりも、その追求に意味を見いだす方が良い
    • 死と日常
      • いつか死ぬ。
      • でも今ではない。
    • 偶然性
      • 人生における偶然性
        • 外的な要因を無視して、自身の結果と思いがち
        • 不規則過程によって生成された事象の順序を、特性と見なしたがる
          • 一部から全体を理解した気になる
    • 考え方
      • 直感
      • 直感を元にした
      • 論理的
    • 死がまだ来ないと、確定的に思い込む
    • しかし、確率的事象はわからん。
    • もっと死に向き合うべき。
  • とても良い文章。
    • 今に感謝し、過去に感謝し、死の未到達を感謝することが全て。