PATテストテーマ「クリティカルアクティビティ」


1テストポイント:単一始点と単一終点、2つのキーパス
説明:私が通過しなかった理由:出力順序の問題.
タスク開始の受け渡し点番号が小さい者を優先し、始点番号と同時に、入力時のタスクの順序とは逆になります.
アクティビティに対して、始点受け渡し点が同じ場合、タスク入力時に、後入力の先出力.私の解法は,構造体パッケージの開始接点,終了接点,出力順序番号を整個し,構造体配列を並べ替えることである.具体的な参考文献2.
2テストポイント:マルチスタートとマルチゴール
説明:1終点の確定、出度0が終点.2マルチエンド、初期化時、各エンドの最終完了時間は、プロジェクトの最大完了時間であるべきである.この点について、以下に対応するテストサンプルを示す.本試験例は文献3から来ている.
    
7 6
1 2 4
1 3 3
2 4 5
3 4 3
5 7 5
6 7 2

    
9
1->2
2->4

3つの頂点は、エンキュー可能、またはアクセス済みとしてマークできる前提条件は、その出力が0であることです.具体的には,頂点を更新する最終完了時間において,出度が1減少し,エンキュー可能か否かを判断する.解の最終完了時間部分の擬似コードは以下の通りである.この部分は文献2を参照する.
Vertex v =       ;
for(v       、  v        ) {
    
            ;
    
           1;
    if(       == 0) {
              ;        
    }
}

比較的良いテストの様子は以下の通りです.本試験例は文献4から来ている.
        
11 14
1 2 4
1 3 3
2 4 5
3 4 3
4 5 1
4 6 6
5 7 5
6 7 2
8 3 7
9 3 7
9 10 6
4 10 2
10 6 5
6 11 4

    
21
3->4
4->10
6->11
8->3
9->3
10->6

3参考文献
[1] https://pintia.cn/problem-set...(7-11クリティカルアクティビティ)[2]https://blog.csdn.net/rxq2008...(7-11クリティカルアクティビティ(一)-A Little Programmer's Base-CSDNブログ)[3]https://blog.csdn.net/qq_2643...(08-図9キーアクティビティ(30分)-master-dragonのコラム-CSDNブログ)[4]http://www.voidcn.com/article...