4
8

More than 3 years have passed since last update.

PythonでAtCoder

Last updated at Posted at 2020-07-08

AtCoderでの使用言語をPythonに変更

先日AtCoderでの使用言語をC++からPythonに変更しました。
Pythonは初心者であるため仕様を忘れた際に自分で参照するためのメモを作成しました。
自分用なので説明などないですが公開したいと思います。

標準入力

intで入力する場合

a.py
a=int(input())

int行列リストで取得

n, m, k=map(int, input().split())
a=list(map(int, input().split()))
#入力
#B1 C1
#B2 C2
#⋮
#BQ CQ

bc=[]
for _ in range(q):
    a, b=map(int, input().split())
    bc.append((a, b))

文字列

s=input()

標準出力

リストを空白区切りで出力

ans = [elem ^ 2 for elem in A]
print(* ans) 

小数点以下桁数指定

num = 123.456
print('{:.08f}'.format(num))
# => 123.4560000

for文

#for(int i=0;i<n;i++)
for i in range(n)

#for(int i=begin; i<n; i+=step)
for i in range(begin, n, step)

文字・文字列操作

文字

#Unicodeで整数iの文字を返す
c = chr(i)

#文字のUnicodeを返す
n = ord('a')

文字列

#s="abcde"
s=input()

#i文字目にアクセス
s[2] = 'b'
# "abbde"

#リストの反転
s = s[::-1]
# "edbba"

sort

#昇順
p.sort()

#降順
p.sort(reverse=True)

辞書

#定義
cnt={}
if a not in cnt:
    cnt[a]=0

論理演算子

#OR
z = x | y

#AND
z = x & y

#XOR
z = x ^ y

#NOT
z = ~x

MOD計算

nCkとnPk

MOD = 10**9 +7
LIM = 1100000
fact = [1] * LIM
invfact = [1] * LIM

for i in range(1, LIM):
    fact[i] = fact[i-1] * i % MOD

invfact[1100000 -1] = pow(fact[LIM -1], MOD-2, MOD)

for i in range(LIM-1,0,1):
    inv[i-1] =invfact[i] * i %MOD

#convination
def nCk(n,k):
    return fact[n] * invfact[k] * invfact[n-k] %MOD

#permutation
def nPk(n,k):
    return fact[n] * invfact[n-k] %MOD

冪乗計算

MOD = 10**9 +7
#x = 10**19 % MOD
x = pow(10, 19, MOD)

公倍数、公約数

#最大公約数
gcd = math.gcd(a,b)

#最小公倍数
lcm = a * b // gcd

Bit全探索

kajitu = ["みかん", "りんご", "ぶどう"]
kakaku = [100, 200, 300]

ans = 0
for i in range(1<<len(kajitu)):
    count = 0
    for j in range(len(3)):
        if (i >> j) & 1:
            count += kakaku[j]
    ans = max(ans, count)
print(ans)

stackとqueue

stack=[1,2,3,4]
#push
stack.append(5) #stack=[1,2,3,4,5]
#pop
stack.pop() #stack=[1,2,3,4]

queue=[1,2,3,4]
#enqueue
queue.append(5) #queue=[1,2,3,4,5]
#dequeue
queue.pop(0) #queue=[2,3,4,5]

4
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
8