ABC152:水色競プロerのムーブ備忘録(やけくそ解法でEを通す)
〇コンテスト名:ABC152
〇配点 A:100 B:200 C:300 D:400 E:500 F:600
〇制限時間 100分
いつも通りのABC
〇コンテスト開始時のsyunsukeのレート 1339
〇今回の方針
いつも通り、前から順番に解く。
Cまではテストケースも程々に速度重視で。
Dが難しく、Cまでのペナで死にたくないので。
はまったら順位表をチェック。
・今見てる問題を飛ばす?
・何か簡単な解法がある?
の判断材料に
コンテスト開始!
A:NとMが与えられる。N=MならYes、違えばNoを出力。
昨日のARC級とは違いますね。
これがABC級のA問題でしょう。
N,M=map(int,input().split()) if N==M: print("Yes") else: print("No")
1:09 AC
B:aとbが与えられて、aをb個並べたものとbをa個並べたものの内、辞書順で早い方を出力
aとbを数字でなく、文字列として受け取っておいて("a","b")、"a"をb個並べたものと"b"をa個並べたものを実際に作ってリストに入れて、ソートして前にきているものを出力。
型変換の理解を問う、地味だけど良い問題ですね。
a,b=list(input().split()) X=a*int(b) Y=b*int(a) List=[X,Y] List.sort() print(List[0])
4:11 AC ちょっともたついた?どんどんいきましょう。
C:N個の整数が並んでいる。左から順に見ていき、見ている数字が今までの最小値以下なら答えを1増やして最小値を更新する。
最小値の初期値は2x10**5より大きい数値を入れておけば良いですね。
N=int(input()) P=list(map(int,input().split())) MIN=10**9 ans=0 for i in range(N): if P[i]<=MIN: ans+=1 MIN=P[i] print(ans)
6:48 AC 急げ急げ!
D:N以下の数値A,Bがあって、Aの先頭の数字とBの最後の数字が一緒、Bの先頭の数字とAの最後の数字が一緒。そんな組み合わせはいくつあるか?
考察の1手目が思いつきません。
一旦パスしてEを見に行きましょう。
Eはmodの割り算。逆元使うやつ?それは無理。
やっぱりこれを解きましょう。
とりあえずNは2x10**5以下なので、全数探索できる?
たとえば1と1〇〇〇1は条件を満たす。で、この〇の中は何でもOK。
いやそんな問題解けない。
!!
降りてきた!
例えば、数字がA〇〇Bなら、B*Aとなら条件を満たす。
これを辞書に入れておいて・・説明は難しいのでコードをどうぞ
N=int(input()) D={} for i in range(1,N+1): I=str(i) if (I[-1],I[0]) not in D: D[(I[-1],I[0])]=1 else: D[(I[-1],I[0])]+=1 ans=0 for j in range(1,N+1): J=str(j) if (J[0],J[-1]) in D: ans+=D[(J[0],J[-1])] print(ans)
よく閃きました。
19:13 AC なんと300番台!
E:N個の整数Aiが与えられる。それらの最小公倍数を求め、最小公倍数をBiで割った値の合計を求めよ。
はいmodの割り算できません。
ただ、時間はたっぷりあるので、ググりましょう。けんちょん先生の記事がすぐにヒットしますね。
でも、私はPythonしか使えないので、Pythonでコードを書いている記事を探しましょう。
・・
ペタッと貼っておわりなものがあれば良いのですが、見つかりませんね。
さすがに記事を読んですぐに理解してコードに起こす。なんてことはできませんし、困りました。
・・
順位表確認。
あれ?結構多くの人が解いてる?
何か見落としてる?
逆元いらない?
とりあえず、Pythonは巨大な数字も扱えるんです。
ダメ元で下のコードをぶん投げてみましょう。
n=int(input()) A=list(map(int,input().split())) mod=10**9+7 def lcm(X,Y): x=X y=Y if y>x: x,y=y,x while x%y!=0: x,y=y,x%y return X*Y//y cnt=0 ans=0 LCM=1 for i in range(n): Q=lcm(LCM,A[i]) cnt*=Q//LCM LCM=Q cnt+=Q//A[i] print(cnt%mod)
あれ?通ってしまった・・
78:37 AC いやこれダメでしょ? こんなの投げちゃだめ? もっと早くに投げとけば良かった?
F:無理
結局 78:37 A,B,C,D,E 5完0ペナ
パフォ1594,レート+28で1367(Highest更新)になりました。
Highest更新はうれしいのですが、このEの解法はダメでしょう。