DOJ logoDOJ
ログイン新規登録
DOJ logoDOJ
問題募集
DOJ logoDOJ

OI形式のサブタスク採点、Eloレーティング、Discord連携を備えたオンラインジャッジです。

問題
問題一覧カテゴリ
コミュニティ
コンテストランキング掲示板お知らせ外部のコンテストを開催するガイド
アカウント
ログイン新規登録ジャッジ状態
ポリシー
利用規約DLCの利用規則プライバシーAPI 文書言語ランタイムコンテストの順位報酬レーティングとパフォーマンス
© 2026 DOJ
All rights reserved
問題
最近追加された問題保存した問題Workbooks
カテゴリDLCコンテストグループチーム掲示板
ランキング
正解数ランキングストリークランキングDOJ Powerランキング
提出状況
解説

꽃 배달

問題に戻る

解説

頂点 111 を根とし、花屋に 000 から K−1K-1K−1 まで番号を付ける。頂点 vvv の部分木内の花屋のビットマスクを mvm_vmv​ とする。子のマスクを親に OR して O(N)O(N)O(N) 時間で求める。

集合 SSS の花屋を訪問した後、通過した頂点は根から SSS の花屋へのパスの和集合に等しい。よって摘んだ花の総数は F(S)=∑v:(mv&S)≠0avF(S)=\sum_{v:(m_v\mathbin{\&}S)\ne0}a_vF(S)=∑v:( である。すでに 本売ったため、接頭集合 が有効である必要十分条件は である。

b[T]=∑v:mv=Tavb[T]=\sum_{v:m_v=T}a_vb[T]=∑v:mv​=T​a と を用意する。SOS DP で を計算すると、 である。XOR により の補集合を求めている。

dp[S]dp[S]dp[S] をちょうど SSS の花屋を成功して訪問した順序の数とする。dp[0]=1dp[0]=1dp[0]=1 とし、空でない SSS について

dp[S]={0,F(S)<∣S∣,∑i∈Sdp[S∖{i}],F(S)≥∣S∣.dp[S]=\begin{cases}0,&F(S)<|S|,\\\sum_{i\in S}dp[S\setminus\{i\}],&F(S)\ge |S|.\end{cases}dp[S]={

最後に訪れる花屋 iii ごとに分類した。998 244 353998\,244\,353998244353 を法として計算し、答えは dp[(1≪K)−1]dp[(1\ll K)-1]dp[(1≪K)−1] となる。

時間計算量は O(N+K2K)O(N+K2^K)O(N+K2K)、空間計算量は O(N+2K)O(N+2^K)O(N+2K である。花の総数は最大 なので符号付き 64 ビット整数で足りる。

Solution written by GPT6

mv​
&
S
)
=
0
​
av​
∣S∣|S|∣S∣
SSS
F(S)≥∣S∣F(S)\ge |S|F(S)≥∣S∣
v
​
A=∑vavA=\sum_v a_vA=∑v​av​
z[T]=∑U⊆Tb[U]z[T]=\sum_{U\subseteq T}b[U]z[T]=∑U⊆T​b[U]
F(S)=A−z[((1≪K)−1)⊕S]F(S)=A-z[((1\ll K)-1)\mathbin{\oplus}S]F(S)=A−z[((1≪K)−1)⊕S]
SSS
0,
∑i∈S​dp[S∖{i}],
​
F(S)<∣S∣,F(S)≥∣S∣.​
)
2⋅10142\cdot10^{14}2⋅1014