Python3で解く AtCoder Beginner Contest 150 C - Count Order
順列の全探索をすればいい。
目次
概要
- を与えられる。
- の順列のリストを考える。(とする)
- ある順列とを与えるので、を辞書順に並べた時にとが何番目かをととする。
- は?
解くときに考えた内容
- permutationsで全部リストあげて
- ソートして(ソートされているから必要ないかも)
- だからと大して大きくない。
- そのままforで回してとが何番目か調べて、差の絶対値を計算する。
コード
from itertools import permutations n = int(input()) p = tuple([int(x) for x in input().split()]) q = tuple([int(x) for x in input().split()]) L = sorted(list(permutations(list(range(1, n+1)), n))) for idx, l in enumerate(L): if l == p: P = idx if l == q: Q = idx ans = abs(Q - P) print(ans)
書籍
最近買って面白かった本
- 機械学習の炊いたん3:ml-titans
サークルml-titansさんの書籍。機械学習関係に興味があれば、刺さる章があると思う。
感想は以前書いた。 blacktanktop.hatenablog.com
アルゴリズムの参考書籍
- 問題解決力を鍛える!アルゴリズムとデータ構造
けんちょんさんこと、大槻さんの書籍である、「問題解決力を鍛える!アルゴリズムとデータ構造」 ご本人の記事の中で難易度は、螺旋本ということで初学者でも結構読みやすいのではないかと期待。(というのもけんちょんさんの記事はC++に疎い自分でも、その思考プロセスを学べるくらい丁寧に書かれているので)
もうすぐ手元にくるので楽しみである。
問題解決力を鍛える!アルゴリズムとデータ構造 (KS情報科学専門書)
- 作者:大槻 兼資
- 発売日: 2020/10/02
- メディア: 単行本(ソフトカバー)
- プログラミングコンテスト攻略のためのアルゴリズムとデータ構造
いわゆる、螺旋本。Aizu Online Judgeの問題を題材に解説されている。自分としては、 Aizu Online Judgeは最近はβ版運用中で、構成がアルゴリズムの項目ごとに問題がタグ付けされているようなイメージで、ここら辺弱いから集中的にやってみようっていう感じでできるので、いいと思っている。(AtCoderもそんな感じのリスト作って欲しい) ただ、この書籍はC++で書かれているのでPythonでやる場合はあくまでもその過程の考え方を参考にし自分で実装する必要がある。(AOJも解いているので、記事にしていこうかなぁ)