マガジンのカバー画像

競技プログラミング

145
運営しているクリエイター

#atcoder初心者

ほぼ日刊競プロ ABC273 C - (K+1)-th Largest Number

ほぼ日刊競プロ ABC273 C - (K+1)-th Largest Number

C - (K+1)-th Largest Number

問題文
長さ N の数列 A=(A1,A2​,…,AN​) が与えられます。 K=0,1,2,…,N−1 のそれぞれについて、下記の問題を解いてください。1 以上 N 以下の整数 i であって、次の条件を満たすものの個数を求めよ。A に含まれる整数のうち A
iより大きいものはちょうど K 種類である。

考えたこと

まず問題文がわかり

もっとみる
ほぼ日刊競プロ ABC272 B - Everyone is Friends

ほぼ日刊競プロ ABC272 B - Everyone is Friends

B - Everyone is Friends

問題文
1,2,…,N の番号がついた N 人の人がいます。
M 回の舞踏会が行われました。 i (1≤i≤M) 回目の舞踏会には k
i人が参加し、参加した人は人 x
i,1,xi,2​,…,xi,ki​​でした。どの二人も少なくとも 1 回同じ舞踏会に参加したか判定してください。

考えたこと

実は時間内に考えつかなかった.解説には二重配

もっとみる
ほぼ日刊競プロ ABC271 A - 484558

ほぼ日刊競プロ ABC271 A - 484558

A - 484558

問題文
0123456789 に加えて 10,11,12,13,14,15 に対応する数字として ABCDEF を使う 16 進表記では、0 以上 255 以下の整数は 1 桁または 2 桁になります。
例えば、0 や 12 は 16 進表記では 0 や C と 1 桁になり、99 や 255 は 16 進表記では 63 や FF と 2 桁になります。
0 以上 255

もっとみる
ほぼ日刊競プロ ABC193 C - Unexpressed

ほぼ日刊競プロ ABC193 C - Unexpressed

C - Unexpressed

問題文
整数 N が与えられます。 1 以上 N 以下の整数のうち、 2 以上の整数 a,b を用いて a^bと表せないものはいくつあるでしょうか?

考えたこと制約上Nの最大値は10^10なので2以上の整数aは2から10^5の範囲,bは2から多く見積もっても100で確かめればよい.
setを用いてハッシュテーブルで数を追加していく.

N=int(input()

もっとみる
ほぼ日刊競プロ ABC182 C - Travel

ほぼ日刊競プロ ABC182 C - Travel

C - Travel

問題文
N 個の都市があります。都市 i から都市 j へ移動するには T
i,jの時間がかかります。

都市 1 を出発し、全ての都市をちょうど 1 度ずつ訪問してから都市 1 に戻るような経路のうち、移動時間の合計がちょうど K になるようなものはいくつありますか?

考えたことitertoolsを用いて準列を用いる.

N,K = map(int,input().s

もっとみる
ほぼ日刊競プロ ABC182 C - To 3 ちょっと深掘り

ほぼ日刊競プロ ABC182 C - To 3 ちょっと深掘り

C - To 3
問題文
各桁に 0 が出現しないような正の整数 N が与えられます。
N の桁数を k とします。N の桁を 0 個以上 k 個未満消して、残った桁をそのままの順序で結合することで 3 の倍数を作りたいです。
3 の倍数を作ることができるか判定し、作ることができるなら作るのに必要な最少の消す桁数を求めてください。

考えたこと深く考えずにitertoolsを使った組み合わせで解を

もっとみる
ほぼ日刊競プロ ABC266 A - Middle Letter

ほぼ日刊競プロ ABC266 A - Middle Letter

A - Middle Letter
問題文
英小文字からなる長さが奇数の文字列 S が与えられます。
S の中央の文字を出力してください。

考えたこと文字列の数は奇数なので、文字列の数//2で割れば中心の文字列のindexが求められる。(//2で割った場合切り捨て)

 ​S= input()print (S[len(S)//2])

ほぼ日刊競プロ ABC264 A - "atcoder".substr()

ほぼ日刊競プロ ABC264 A - "atcoder".substr()

A - "atcoder".substr()
問題文
文字列 atcoder の L 文字目から R 文字目までを出力してください。

考えたこと文字列をL文字目からR文字目まで出力するだけなので、pythonのlist[始まり:終わり]で出力すればよい。ただ配列は0から始まるので出力する際には-1してあげる必要がある。

L,R = map(int,input().split())temp =

もっとみる
ほぼ日刊競プロ ABC260 -A - A Unique Letter

ほぼ日刊競プロ ABC260 -A - A Unique Letter

A - A Unique Letter

問題文

長さ 33 の文字列 SS が与えられます。
SS に 11 度だけ含まれる文字を 11 つ出力してください。
但し、そのような文字が存在しない場合は代わりに -1 と出力してください。

考えたこと
collectionライブラリを使い、文字列と出現回数を辞書にする。1回のみ出てきた場合はその単語を出力し、すべての単語が1個以上存在する場合は-

もっとみる

ほぼ日刊競プロ ABC258 -A - When?

A - When?

問題文
AtCoder Beginner Contest は通常、日本標準時で 21 時ちょうどに始まり 100 分間にわたって行われます。0 以上 100 以下の整数 K が与えられます。21 時ちょうどから K 分後の時刻を HH:MM の形式で出力してください。ただし、HH は 24 時間制での時間を、MM は分を表します。時間または分が 1 桁のときは、先頭に 0 を

もっとみる
ほぼ日刊競プロ ABC205 -C - POW

ほぼ日刊競プロ ABC205 -C - POW

問題文
数 X を Y 回掛けたものを「X の Y 乗」といい、pow(X,Y) で表します。 例えば pow(2,3)=2×2×2=8 です。3 つの整数 A,B,C が与えられるので、pow(A,C) と pow(B,C) の大小を比較してください。

考えたこと

A,Bを比較する。何回Cを掛けるかによって解が異なる。
1.Cが偶数のときは、絶対値A,絶対値Bを比較しどちらが大きいかを確認す

もっとみる
日刊競プロ ABC256 -A - 2^N

日刊競プロ ABC256 -A - 2^N

A - 2^N

問題文
N が与えられます。2^Nを出力してください。

考えたこと

そのままpythonで2**Nを出力する。

N=int(input())print (2**N)

日刊競プロ ABC255 -A - You should output ARC, though this is ABC.

日刊競プロ ABC255 -A - You should output ARC, though this is ABC.

A - You should output ARC, though this is ABC.

問題文
整数 R,C と 2 行 2 列からなる行列 A が与えられるので、 A
R,Cを出力してください。

考えたこと

二重配列を作成し、R,Cが参照した配列を出力すれば良いと考えた。配列は0から始まるので求める配列の参照先は[R-1][C-1]となる。

R,C=map(int,input()

もっとみる
日刊競プロ ABC254 -A - Last Two Digits

日刊競プロ ABC254 -A - Last Two Digits

A - Last Two Digits

問題文
100 以上の整数 N が与えられます。N の下 2 桁を出力してください。ただし、N の下 2 桁とは十の位と一の位をこの順に並べたものを言います。

考えたこと

与えられる数字は3桁以上なので、1桁目と2桁目を決め打ちで出力すれば良いと考えた。

N=input()print (N[-2]+N[-1])