ブルーブリッジカップ将軍のJava実装G

Gは、一般的なすべての兵士が直接優れている(そしておそらく他の兵士が、それは一般的なGかもしれない)、軍の将軍Gを除いて、よく訓練された軍隊を持っています。今、G一般的には、チームの兵士の要件は、彼の即時の上司がチームにすることはできません場合は、プレイヤーの独立性を高めるために、自殺隊で構成部分(少なくとも1)を送信するために兵士を必要とする特定のタスクを受け入れます。
多くの方法がチームを送信するためにどのように私は、G将軍をお願いします。注、G将軍は、チームに兵士としての役割を果たす。
入力フォーマット
入力の最初の行の整数nを含み、Gを含む軍の数は、一般含みます。軍兵士は、G将軍が1番の、1からnまでの番号。
次に、番号N-1は、それぞれ、3、...、特許即時優れ、優れた直接兵士番号iが数N I兵士よりも小さい、2番号。
出力フォーマット
出力チームを送信するためのプログラムの数を表す整数。数が大きくなり得るので、あなただけの10007の残りの部分に加えて、出力にこの番号が必要です。
サンプル入力1
。3
。1. 1
サンプル出力1
。4
例の説明
これらの4つのモードがあります。

  1. オプション1;
  2. オプション2;
  3. オプション3;
  4. 2、3から選択されます。
    サンプル入力2
    。7
    。1. 1. 3. 3 2 2
    サンプル出力2
    40

データサイズと一致した
データの20%を、N≤20と、
データの40%を、N≤100、
データ100%、1≤N≤100000。

:のためのリソース
(仮想マシンを含む)ピークメモリ消費量<256M
CPU消費量<2000ミリ秒

「入力してください...」不要なコンテンツ:厳密に出力の要件に従ってください、余計ないようなものを印刷します。

1つのファイルにすべてのソースコードは、デバッグを通じて、コピー元を提出します。
注:packageステートメントを使用しないでください。jdk1.7と上記の機能を使用しないでください。
注:メイン、または他の不正なコード処理:名前はメインクラスでなければなりません。

import java.util.ArrayList;
import java.util.Scanner;

public class Main {
    public static int n;
    public static int MOD = 10007;
    public static ArrayList<Integer>[] list;
    public static long[][] dp;
    
    public void dfs(int root) {
        dp[root][0] = 1;
        dp[root][1] = 1;
        for(int i = 0;i < list[root].size();i++) {
            int child = list[root].get(i);
            dfs(child);
            dp[root][0] = dp[root][0] * (dp[child][0] + dp[child][1]) % MOD;
            dp[root][1] = dp[root][1] * dp[child][0] % MOD;
        }
    }
    
    @SuppressWarnings("unchecked")
    public static void main(String[] args) {
        Main test = new Main();
        Scanner in = new Scanner(System.in);
        n = in.nextInt();
        list = new ArrayList[n + 1];
        for(int i = 1;i <= n;i++)
            list[i] = new ArrayList<Integer>();
        for(int i = 2;i <= n;i++) {
            int father = in.nextInt();
            list[father].add(i);
        }
        dp = new long[n + 1][2];
        test.dfs(1);
        long result = (dp[1][0] + dp[1][1] - 1) % MOD;
        System.out.println(result);
    }
}
リリース1088元の記事 ウォンの賞賛2782 ビュー10万+

おすすめ

転載: blog.csdn.net/a1439775520/article/details/96614175