2023-05-01から1ヶ月間の記事一覧

pythonでの幅優先探索(BFS) マップが入力で与えられているとき

・問題 atcoder.jp・参考: スタックとキューを極める! 〜 考え方と使い所を特集 〜 - Qiita・注意点:参考文献を見れば基本大丈夫だが、スタートとゴールの座標をマイナス1する必要がある。(sx-=1,,,のように)・実装: from collections import deque H,W=…

幅優先探索(bfs)のpythonでの実装

・参考: BFS (幅優先探索) 超入門! 〜 キューを鮮やかに使いこなす 〜 - Qiita・内容:上の記事を参考にpythonでBFSを書いた。queueはcollectionsのdequeのほうが早いらしい。dequeはque=deque() #que.append(i)でappend,que.popleft()で左を取り出してキ…

AtCoder Beginner Contest 302 D - Impartial Giftの解答

atcoder.jp・参考: Editorial - TOYOTA MOTOR CORPORATION Programming Contest 2023#2 (AtCoder Beginner Contest 302)Editorial - TOYOTA MOTOR CORPORATION Programming Contest 2023#2 (AtCoder Beginner Contest 302)・考え方:A,Bをソートして、B[i]+…

AtCoder Beginner Contest 302 C-Almost Equalの解答

atcoder.jp・考え方:N,Mが小さいので全部の順列を試して、隣り合う文字列の文字のうち1つだけ違う文字があればcnt+=1として、文字が1つだけ違う、つまりcnt=1のときfcnt+=1と加算する。これを全部の隣り合う文字列に対してやり、fcnt=N-1、つまり隣り合う全…

yukicode No.843 Triple Primesの勉強

yukicoder.me・考え方:q+p=r^2となる素数を考える。この左辺が偶数のときは偶数+偶数(8+6=12+2)、奇数+奇数=偶数+偶数(3+3=4+2など)。このとき右辺も偶数なのは偶数*偶数のとき。 左辺が奇数のとき、奇数+偶数(3+4=5+2)。右辺も奇数のときは奇数*奇数。 よ…

atcoder (abc301) B-Fill the Gaps 間違いと正解例

atcoder.jp・間違いの解答。insertを使うとインデックスがずれてうまくいかない。 N=int(input()) A=list(map(int,input().split())) for i in range(N-1): da=abs(A[i]-A[i+1]) if da!=1: if A[i]

atcoder (abc77 C)Snuke Festival のpythonによる解答

問題 atcoder.jp・前提:この問題は二分探索を使う。・考え方:Bを1つ決めてそれをB[i]とする。Aの中のB[i]より小さい値の数をbiaとする。Cの中のB[i]より大きい値の数をbicとする。biaとbicを掛け算したものが答えとなりあとはiをforで回せば良い。・例:A=…

第8回日本情報オリンピック 本選(過去問)B - ピザの勉強

atcoder.jpこの問題は二分探索を使って解けます。コードはpythonでライブラリのbisectを使って書きました。・プログラムの流れ:店舗の位置に本店の位置(0とD)を加えた。その後、配達先の位置を二分探索して近い店舗2つのうち近い方からの距離をdとした。あ…

AOJ 二分探索のPythonによる解答 3パターン

onlinejudge.u-aizu.ac.jpこの問題を3つの方法、二分探索を自分で実装する 、if T[i] in S 、pythonのライブラリbisectを使って解答してみます。・1つ目 二分探索を自分で実装するやり方。これは実際に二分探索を自分で関数として作るやり方です。二分探索に…

atcoder ABC 300 B - Same Map in the RPG World の実装(Python)

atcoder.jpこの問題ではPythonのNumpyのrollを使うと簡単に解けます。(参考:NumPy配列ndarrayをシフト(スクロール)させるnp.roll | note.nkmk.me)・考え方:A,Bをndarrayにして、for文でAをH行とW列の数シフトさせる。最後に一致する場合はYesを出力して…