0
0

ABC358開催日だったので適当に参加した結果をまとめる

結果はABCDの4完
いままで3完しかしなかった壁を越えることができて嬉しい

A,Bについてはただやるだけなので省略するとしてC以降の感想を書いていく

C

bit全探索すれば行ける気はしたがやり方がわからないので
色々検索して出てきたのをコピペしてアレンジ
今度からこれをテンプレにしたいね

ソースコード

main.py
import sys
from itertools import product
def rI(): return int(sys.stdin.readline().rstrip())
def rLI(): return list(map(int,sys.stdin.readline().rstrip().split()))
def rS(): return sys.stdin.readline().rstrip()
def rLS(): return list(sys.stdin.readline().rstrip().split())
def err(*args): print(*args, file=sys.stderr)

p = {"o":1,"x":0}

def prod_or(g):
    x = 0
    for f in g:
        x |= f
    return x
def main():
    N, M = rLI()
    S = [rS() for _ in range(N)]
    target = sum( 1 << i for i in range(M))
    g = [sum(p[k] << i for i, k in enumerate(s)) for s in S]
    ans = N
    for k in product((0, 1), repeat=N):
        chk_g = [g[i] for i, bit in enumerate(k) if bit]
        if prod_or(chk_g) == target:
            ans = min(ans,len(chk_g))
    print(ans)

if __name__ == '__main__':
    main()

D

尺取り法的なやつ使えば行けそうだと思い適当に実行
なんかうまく行った感じがしたので提出したらACでちゃった

今まで解けなかったD問題なのにこんなにあっさり解けていいの?

ソースコード

main.py
import sys
def rI(): return int(sys.stdin.readline().rstrip())
def rLI(): return list(map(int,sys.stdin.readline().rstrip().split()))
def rS(): return sys.stdin.readline().rstrip()
def rLS(): return list(sys.stdin.readline().rstrip().split())
def err(*args): print(*args, file=sys.stderr)

def main():
    N, M = rLI()
    A = rLI()
    B = rLI()
    A.sort()
    B.sort()
    ans = 0
    j = 0
    for i,a in enumerate(A):
        if a >= B[j]:
            ans += a
            j += 1
            if j == M:
                print(ans)
                break
    else:
        print(-1)
if __name__ == '__main__':
    main()

E

色々考えた結果、DP使えばいけそうな気がしたけど
どうテーブルをいじればいいかよくわからなくて時間切れ

F

Eやる前にチラ見したけど
迷路の出力むずくない?

G

ここもEやる前にチラ見
値が最大のところにいって経路探索すれば行ける気はしたが
そもそもそこら辺のアルゴリズムまだ使いこなせないので撤退

まとめ

とりあえずAtCoder Daily Trainingとかで頑張った成果を出せた気がしてうれしい

これからは4完を安定させていきたい

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