ホームページ >ウェブフロントエンド >htmlチュートリアル >Codeforces ラウンド #277 (ディビジョン 2)D (ツリー DP カウント クラス)_html/css_WEB-ITnose

Codeforces ラウンド #277 (ディビジョン 2)D (ツリー DP カウント クラス)_html/css_WEB-ITnose

WBOY
WBOYオリジナル
2016-06-24 11:54:221119ブラウズ

D. 有効セット

テストごとの時間制限

1 秒

テストごとのメモリ制限

256 メガバイト

入力

標準入力

出力

標準出力

ご存知のとおり、 n 個のノードと n?-?1 個のエッジを持つ無向接続グラフはツリーと呼ばれます。整数 d と、n 個のノードで構成されるツリーが与えられます。各ノード i にはそれに関連付けられた値 ai があります。

次の条件が満たされる場合、ツリー ノードのセット S を有効と呼びます:

S は空ではない。
  1. S は接続されている。言い換えれば、ノード u と v が S にある場合、u と v の間の単純なパス上にあるすべてのノードも S に存在する必要があります。
  2. .
  3. あなたのタスクは、有効なセットの数を数えることです。結果は非常に大きくなる可能性があるため、1000000007(109?+?7) を法とした剰余を出力する必要があります。

入力

最初の行には、スペースで区切られた 2 つの整数 d (0?≤?d?≤?2000) が含まれています。 ) および n (1?≤?n?≤?2000)。

2 行目には、スペースで区切られた n 個の正の整数、a1、?a2、?...、?an(1?≤?ai?≤?2000) が含まれます。

次に、次の n?-?1 行にはそれぞれ、u と v の間にエッジがあることを示す整数 u と v のペア (1?≤?u,?v?≤?n) が含まれています。エッジはツリーを形成します。

出力

1000000007 を法とする有効なセットの数を出力します。

サンプル テスト

入力

1 42 1 3 21 21 33 4

出力

入力rreee

出力

入力
0 31 2 31 22 3

出力
4 87 8 7 5 4 6 4 101 61 25 81 33 56 73 4

最初のサンプルには、有効なセットが 8 つあります: {1}、?{2}、?{3 }、? {4}、?{1,?2}、?{1,?3}、?{3,?4}、{1,?3,?4}。 3 番目の条件が満たされていないため、セット {1,?2,?3,?4} は無効です。セット {1,?4} は 3 番目の条件を満たしますが、2 番目の条件と矛盾します。它のすべての子树の点 v の权值都は超過せず、十分な w[u]-w[v]<=d の方法案

それぞれの点は根これ样算一遍就好了,注意减去算重的情况,即ち相邻多点的权值相等,可使用点的代号去重(即ち规定只能从代号大的往小的DP)


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。