Game Map------Gym - 101667C

 1 #include<bits/stdc++.h>
 2 
 3 using namespace std;
 4 
 5 vector<int> ve[1000005];
 6 int a[1000005];
 7 
 8 struct node
 9 {
10     int id;
11     int num;
12     int jieguo;
13 }s[1000005];
14 
15 bool cmp(node a, node b)
16 {
17     return a.num < b.num;
18 }
19 
20 int main()
21 {
22     int n, m, pos, u, v, maxx;
23     int anss;
24 
25     scanf("%d %d", &n, &m);
26     for(int i=0;i<n;i++)
27     {
28         s[i].id = i;
29     }
30 
31     while(m--)
32     {
33         scanf("%d %d", &u, &v);
34         s[u].num++;
35         s[v].num++;
36         ve[u].push_back(v);
37         ve[v].push_back(u);
38     }
39 
40     sort(s, s+n, cmp);
41     for(int i=0;i<n;i++)
42     {
43         a[s[i].id] = i;
44     }
45 
46     anss = 1;
47     for(int i=0;i<n;i++)
48     {
49         maxx = 1;
50         for(auto it:ve[s[i].id])
51         {
52             pos = it;
53             if(s[a[pos]].num < s[i].num)
54                 maxx = max(s[a[pos]].jieguo + 1, maxx);
55         }
56         s[i].jieguo = maxx;
57         anss = max(anss, s[i].jieguo);
58     }
59 
60     printf("%d\n", anss);
61     return 0;
62 }

 

posted @ 2019-10-10 15:55  Xxiaoyu  阅读(205)  评论(0编辑  收藏  举报