zoukankan      html  css  js  c++  java
  • P1726-上白泽慧音

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 #define pb push_back
     4 #define _for(i,a,b) for(int i = (a);i < (b);i ++)
     5 #define _rep(i,a,b) for(int i = (a);i > (b);i --)
     6 #define INF 0x3f3f3f3f
     7 #define ll long long
     8 inline ll read()
     9 {
    10     ll ans = 0;
    11     char ch = getchar(), last = ' ';
    12     while(!isdigit(ch)) last = ch, ch = getchar();
    13     while(isdigit(ch)) ans = (ans << 1) + (ans << 3) + ch - '0', ch = getchar();
    14     if(last == '-') ans = -ans;
    15     return ans;
    16 }
    17 inline void write(ll x)
    18 {
    19     if(x < 0) x = -x, putchar('-');
    20     if(x >= 10) write(x / 10);
    21     putchar(x % 10 + '0');
    22 }
    23 #define maxn 5003
    24 int n,m;
    25 vector<int> G[maxn];
    26 vector<int> rG[maxn];
    27 vector<int> vs;
    28 vector<int> ans[maxn];
    29 bool used[maxn];
    30 int V,E;
    31 int rnt = 0;
    32 void add_edge(int from,int to)
    33 {
    34     G[from].pb(to);
    35     rG[to].pb(from);
    36 }
    37 void dfs(int v)
    38 {
    39     used[v] = true;
    40     _for(i,0,G[v].size())
    41         if(!used[G[v][i]])
    42             dfs(G[v][i]);
    43     vs.pb(v);
    44 }
    45 void rdfs(int v,int k)
    46 {
    47     used[v] = true;
    48     ans[k].pb(v);
    49     _for(i,0,rG[v].size())
    50         if(!used[rG[v][i]])
    51             rdfs(rG[v][i],k);
    52 }
    53 void Kosaraju()
    54 {
    55     memset(used,0,sizeof(used));
    56     _for(v,1,V+1)
    57         if(!used[v])
    58             dfs(v);
    59     
    60     memset(used,0,sizeof(used));
    61     int k = 0;
    62     _rep(i,vs.size()-1,-1)
    63         if(!used[vs[i]])
    64         {
    65             rdfs(vs[i],k);
    66             rnt = max(rnt,(int)ans[k].size());
    67             k ++;
    68         }
    69 }
    70 int main()
    71 {
    72     V = read(),E = read();
    73     _for(i,1,E+1)
    74     {
    75         int a,b,t;
    76         a = read(),b = read(),t = read();
    77         add_edge(a,b);
    78         G[a].pb(b);
    79         if(2==t)
    80             add_edge(b,a);
    81     }
    82     Kosaraju();
    83     _for(i,0,5000)
    84         if(ans[i].size()==rnt)
    85         {
    86             sort(ans[i].begin(),ans[i].end());
    87             printf("%d
    ",ans[i].size());
    88             _for(j,0,ans[i].size())
    89                 printf("%d ",ans[i][j]);
    90             break;
    91         }
    92     return 0;
    93 }
  • 相关阅读:
    jQuery取得select选择的文本与值
    jquery 广告效果
    【JNI知识一】JNI接口函数与指针
    jQuery 中bind(),live(),delegate(),on() 区别(转)
    用angular怎么缓存父页面数据
    js条件判断时隐式类型转换
    常用原生JS方法
    gulp批量打包文件并提取公共文件
    angular下H5上传图片(可预览,可多张上传)
    angular4运行 ng build prod出错
  • 原文地址:https://www.cnblogs.com/Asurudo/p/11535968.html
Copyright © 2011-2022 走看看