2022-01-01から1年間の記事一覧

ABC249 C - Just K

atcoder.jp キーワード ビット全探索 ビット演算 シフト演算 キーワードについて解説していきます シフト演算 見やすさ重視でバイナリ表記で出力していますが、下記コードは右シフトの演算です 例:0010 >> 0001 = 00001, 1000 >> 0010 = 0010 演算子の右側…

ABC243 C - Collision 2

atcoder.jp 愚直に解こうとすると時間内に処理を終えることができずTLEになるので、 Yをキーとした、 Lの中で一番Xが大きいもの(left_max)、Rの中で一番Xが小さいもの(right_min)のみで、 解けば実行時間の制限にひっかかることなく処理を終えれます あとは…

Rails id以外でのリクエスト処理

注意 Railsで初めてのまともなものを作ったので、 ベストプラクティスは他にあるかもしれないです ご存じの方はコメントでご指摘ください 本題 リクエストをid以外のもので出したくてそのやり方について軽くまとめました ルーティングの設定 routes.rb Rails…

No.1673 Lamps on a line

yukicoder.me まずは二つのコードを AC N,Q = map(int,input().split()) switch = [0]*(N) ans = 0 for i in range(Q): L,R = map(int,input().split()) for j in range(L-1,R): if switch[j] == 0: switch[j] = 1 ans += 1 else: switch[j] = 0 ans -= 1 pr…

Permission denied (publickey) について

鍵に独自の名前を付けて保存した場合に限り下記が必要 今回はGithub用に作成した際に起きたのでそのような名前です Host github github.com HostName github.com IdentityFile ~/.ssh/id_rsa_github #付けた名前にする User git こんな単純で初歩的なことで…

Python3ではTLEなのにPyPy3だと通った話

atcoder.jp 『アルゴリズムと数学』の4.1-2の演習問題でそれは起きました 「034 - Nearest Points」 注意 文中のPythonは処理系のCPythonのことを指しています 言語のPythonを指す際は、Python言語と記載しています 問題の起きたコード N = int(input()) X,Y…

yukicoder No.1644 Eight Digits

yukicoder.me 解答 from itertools import permutations K = int(input()) N = permutations('12345678',8) cnt = 0 for i in N: if int(''.join(list(i))) % K == 0: cnt += 1 print(cnt) permutations('****', N) これは第一引数の文字列をN個並べてできる…

DeprecationWarning: find_element_by_class_name is deprecated.について

内容 タイトルからわかりづらく失礼しました O'reilly社の『退屈なことはPythonにやらせよう』を読んでいて、 なにかとSeleniumのところでつまづく 理由としては本ではバージョンが3なのに対して、 自分が使っているバージョンがSelenium4なため なのでいち…

WSL2でSleniumモジュールを使う

O'reilly社の『退屈なことはPythonにやらせよう』の11章でSeleniumを使うのですが 初っ端つまづいたのでその解決方法 環境 WSL2 Python 3.8.10 Ubuntu-20.04 selenium 4.1.3 from selenium import webdriver browser = webdriver.Firefox() 以下省略 上記をP…

ABC224 B - Mongeness

atcoder.jp 解答 h,w = map(int,input().split()) a = [[0]*w]*h flag = False for i in range(h): a[i] = list(map(int,input().split())) for i in range(h-1): for j in range(w-1): if (a[i][j]+a[i+1][j+1]) > (a[i+1][j]+a[i][j+1]): flag = False bre…

ABC225 B - Star or Not

atcoder.jp 解答 n = int(input()) cnt = [0] * (n+1) for _ in range(n-1): a,b = map(int,input().split()) cnt[a] += 1 cnt[b] += 1 for i in range(1,n+1): if cnt[i] == (n-1): print('Yes') exit() print('No') ひたすら多重配列に入力値を入れて、そ…

ABC228 B - Takahashi's Secret

atcoder.jp 解答 n,x = map(int,input().split()) a = list(map(int,input().split())) set1 = {x} ind = 0 cnt = 1 for i in range(n): if 2 <= cnt: if ind != a[ind-1]: ind = a[ind-1] set1.add(ind) cnt += 1 else: if ind != a[x-1]: ind = a[x-1] set…

ABC231 B - Election

atcoder.jp 今回の解答もとてもじゃないけど、スマートなコードではないです ただ僕と同じく灰色コーダーには理解しやすいのではと思い、載せています 解答 n = int(input()) s = ['']*n cnt = 0 ans = '' for i in range(n): s[i] = input() for i in s: if…

ABC236 B - Who is missing?

atcoder.jp 計算量の問題で後者のコードだとTLEになってしまい、 ACの解答にたどり着くまで少し苦労しました ACな解答 n = int(input()) a = list(map(int,input().split())) gokei = 0 for i in range(1,n+1): gokei += (i*4) print(gokei-sum(a)) TLEな解…

ABC240 B - Count Distinct Integers

atcoder.jp 解法その1 n = int(input()) a = set(input().split()) print(len(a)) Pythonの set は要素の重複を許さないのでそれを使い、要素数を出力 解法その2 n = int(input()) a = list(input().split()) cnt = 1 a.sort() for i in range(n-1): if a[…

ITP1_8_C 文字のカウント

onlinejudge.u-aizu.ac.jp 解答 from string import ascii_lowercase, ascii_uppercase count = [0]*26 while True: try: sentence = input() except: break for ch in sentence: c = ascii_lowercase.find(ch) if -1 < c: count[c] += 1 c = ascii_uppercas…

ICPC - Prelim 1608

解答 while True: n = int(input()) if n == 0: break a = list(map(int,input().split())) a.sort() #aiは 0<=ai<=1000000 なため答えとなりえる最大値 ans = 1000000 for i in range(1,n): if a[i] - a[i-1] < ans: ans = a[i] - a[i-1] print(ans) 二個目…

ITP_1_6_D [ ベクトルと行列の積 ]

問題文を読んでも何を聞かれてるかわからず、 とりあえず入力の箇所だけでも実装しようと手を動かしたら解けたので、 実装方法がわからなくても、とりあえずやってみるのは大事ですね。 解答 n,m = map(int,input().split()) A = [[0]*m for i in range(n)] …