0
0

More than 3 years have passed since last update.

ABC177参戦記

Posted at

古戦場帰りで頭がグルグルになってたのか何もわからなくなった。
もうだめだ……おしまいだ……。

A - Don't be late

普通。
$T×S≧D$ならYes、そうでないならNoを出せば良いですね。

d,t,s=map(int,input().split())
print("Yes" if d<=t*s else "No")

B - Substring

メダパニゾーン
なんかとち狂った解法にたどり着いてしまった気がする。
というかどういう考えでこのコードに至ったのか思い出せない。

s=input()
t=input()
res=float("INF")
if t in s:
    res=0
else:
    for i in range(len(s)):
        for j in range(len(t)):
            if s[i]==t[j] and i>=j and len(s)-i>=len(t)-j :
                tmp=j
                for k in range(j,len(t)):
                    if i-j+k<(len(s)) and s[i-j+k] != t[k]:
                        tmp+=1
                res=min(res,tmp)

解説見たらあーなるほどねという感じと、なんでこれにたどり着かなかったのかという感じが半々。
やはりメダパニかかってたのでは?

s=input()
t=input()
res=len(t)
for i in range(len(s)-len(t)+1):
    tmp=0
    for j in range(len(t)):
        if s[i+j] != t[j]:
            tmp+=1
    res=min(tmp,res)
print(res)

C - Sum of product of pairs

愚直にやったらTLEだよなあと思いつつも短縮させる方法が思いつかなかったのでぶん投げて残りの時間はすべてゲームに費やした。

n=int(input())
a=[int(i)for i in input().split()]
res=0
mod=10**9+7
for i in range(n-1):
    res+=sum(map(lambda x:x*a[i]%mod,a[i+1:]))

print(res%mod)

あらかじめsumAを求めておいてそこから$A_i$を引いたものに$A_i$をかければ良かったとは……。分配法則の概念を完全に忘れてました。

n=int(input())
a=[int(i) for i in input().split()]
s=sum(a)
mod=10**9+7
res=0
for i in a:
    s-=i
    res+=i*s%mod
print(res%mod)

おわりに

なんか今回難しくなかったですか? twitter見ても悲鳴が多いような気が1
先週は10分でCまで終わったので急に意味わからないのが来て結構やる気が消えました。
バランス調整が雑なゲームは嫌ですね。
とりあえずこれの残りをやります。


  1. 過去の開催時のtwitter見てないのでわかりませんが 

0
0
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
0
0