2019年ccf第5題317号サブタスクについて

9451 ワード

最初の接触図論アルゴリズムはこの問題を書いてからテストサンプルに合格することができますが、提出してからいつも間違いを提示して、先に掛けています.のいつバグを見つけられるか分からない
(最後にreturn前のsystem(「pause」)はvsで調整して試用するためのものです)
男の人も間違いを見てほしいですね(今日申請したばかりのブログ)
 1 #include
 2 #include 
 3 using namespace std;
 4 #define inf 1001
 5 int a[10000][10000];// 
 6 bool kind[10000];// 
 7 int sort_array[10000];
 8 int main()
 9 {
10     int n, m, k;
11     cin >> n >> m >> k;
12     for (int i = 0; i < n; i++)
13         cin >> kind[i];
14     for (int i = 0; i < n; i++)
15         for (int j = 0; j < n; j++)
16             if (i == j)
17                 a[i][j] = 0;
18             else
19                 a[i][j] = inf;
20 
21     // 
22     for (int i = 0; i < m; i++)
23     {
24         int p, q, r;
25         cin >> p >> q >> r;
26         a[p - 1][q - 1] = r;
27         a[q - 1][p - 1] = r;
28     }// 
29 
30     //floyd 
31     for (int k = 0; k < n; k++)
32         for (int i = 0; i < n; i++)
33             for (int j = 0; j < n; j++)
34             {
35                 if (a[i][k] + a[k][j] < 2003 && a[i][k] + a[k][j] < a[i][j])
36                     a[i][j] = a[i][k] + a[k][j];
37             }
38 
39     for (int i = 0; i < n; i++)// m 
40     {
41         int pointer = 0;// sort_array 
42         for (int j = 0; j < 10000; j++)
43         {
44             sort_array[j] = inf;
45         }// 
46         for (int j = 0; j < n; j++)
47         {
48             if (kind[j])
49             {
50                 sort_array[pointer] = a[i][j];
51                 pointer++;
52             }
53         }// sort_array
54 
55         // sort sort_array 
56         sort(sort_array, sort_array + pointer);
57         int sum = 0;
58         for (int p = 0; p < k; p++)
59         {
60             if (sort_array[p] <= 1000)
61                 sum += sort_array[p];
62         }
63         cout << sum << endl;
64     }
65     system("pause");
66     return 0;
67 }

 
転載先:https://www.cnblogs.com/cs-yxk/p/11488413.html