結果
問題 | No.2888 Mamehinata |
ユーザー |
![]() |
提出日時 | 2024-11-24 07:09:04 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,459 bytes |
コンパイル時間 | 388 ms |
コンパイル使用メモリ | 82,304 KB |
実行使用メモリ | 142,096 KB |
最終ジャッジ日時 | 2024-11-24 07:09:30 |
合計ジャッジ時間 | 21,639 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 45 WA * 7 |
ソースコード
from collections import defaultdict, dequeclass FenwickTree:def __init__(self, n):self.data = [0] * (n+10)self.n = (n+10)def add(self, p, x):assert 0 <= p < self.np += 1while p < len(self.data):self.data[p] += xp += p & -pdef sum(self, p):"""区間 [0, p] の和"""assert 0 <= p < self.np += 1s = 0while p > 0:s += self.data[p]p -= p & -preturn sdef rangesum(self, l, r):"""区間 [l, r] の和"""assert 0 <= l <= r < self.ns = self.sum(r)if l > 0:s -= self.sum(l-1)return sN, M = map(int, input().split())adj = defaultdict(list)for _ in range(M):u, v = map(lambda x: int(x)-1, input().split())adj[u].append(v)adj[v].append(u)def bfs():evens = FenwickTree(N+10)odds = FenwickTree(N+10)q = deque([(0, 0)]) # (node, dist)used = set()while q:v, d = q.popleft()if v in used: continueused.add(v)if d % 2 == 0:evens.add(d, 1)else:odds.add(d, 1)for to in adj[v]:if to in used: continueq.append((to, d+1))return evens, oddsevens, odds = bfs()for i in range(1, N+1):if i % 2 == 0:print(evens.rangesum(0, i))else:print(odds.rangesum(0, i))