Dを間違えてるのに気づかずにEに集中して、残り30分くらいで気づいて慌てて直した 水色手前での足踏みを継続中…
- 一言で言えば「約数を列挙せよ」だね
- 約数列挙は自作ライブラリに入れたのでこんな感じ python
def main():
N = int(input())
for x in get_divisors(N):
print(x)
- Aが2以上であることからが成り立つので「先に×Aにした方が得」が言える python
def solve(X, Y, A, B):
AX = X
a_count = 0
ret = 0
while AX < Y:
rest = Y - 1 - AX
b_count = rest // B
ret = max(ret, a_count + b_count)
a_count += 1
AX *= A
return ret
- 最初、
a_count += 1
AX *= A
がループの先頭にあったのでAを0回やるタイプの入力でWAになってた- WAに気づいたらすぐ直せたのだけどEに集中してたせいで気づかずに1時間も放置してしまった
ABC180E AC after contest
F - Unbranched []](https://atcoder.jp/contests/abc180/tasks/abc180_f)
- 考えたこと
- 位数が2以下ということは、各連結成分はサイクルかパスである
- 最大連結成分がちょうどLなら、Lのサイクルかパスが最低1個ある
- それを取り除いたらL以下で配置する問題になる
- 頂点のラベルが影響する制約がないので、まずグラフの形が決まってからそこにラベルを分配する問題になるかな
- サイクルだと数珠順列
- 多重辺がありなのでL=2のサイクルがある
- 公式解説