6#include7#include8#include9#include10#include11#include12#include

欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

雙拓?fù)渑判?HDOJ 5098 Smart Software Installe

系統(tǒng) 1691 0

?

題目傳送門

      
        
          
             1
          
          
            /*
          
          
             2
          
          
             雙拓?fù)渑判颍撼模院髞硌a(bǔ) 
          
          
             3
          
          
             詳細(xì)解釋:
          
          
            http://blog.csdn.net/u012774187/article/details/40736995
          
          
             4
          
          
            */
          
          
             5
          
           #include <cstdio> 
          
             6
          
           #include <algorithm> 
          
             7
          
           #include <iostream> 
          
             8
          
           #include <sstream> 
          
             9
          
           #include <cstring> 
          
             10
          
           #include <cmath> 
          
             11
          
           #include <
          
            string
          
          > 
          
             12
          
           #include <vector> 
          
             13
          
           #include <queue> 
          
             14
          
           #include <map> 
          
             15
          
           #include <
          
            set
          
          > 
          
             16
          
           #include <ctime> 
          
             17
          
           #include <cstdlib> 
          
             18
          
          
            using
          
          
            namespace
          
          
             std; 
          
          
             19
          
          
             20
          
          
            #define
          
           lson l, mid, rt << 1 
          
             21
          
          
            #define
          
           rson mid + 1, r, rt << 1 | 1 
          
             22
          
           typedef 
          
            long
          
          
            long
          
          
             ll; 
          
          
             23
          
          
             24
          
          
            const
          
          
            int
          
           MAXN = 1e3 + 
          
            10
          
          
            ; 
          
          
             25
          
          
            const
          
          
            int
          
           INF = 
          
            0x3f3f3f3f
          
          
            ; 
          
          
             26
          
          
            const
          
          
            double
          
           PI = acos (-
          
            1.0
          
          
            ); 
          
          
             27
          
          
            const
          
          
            double
          
           EPS = 1e-
          
            9
          
          
            ; 
          
          
             28
          
          
            struct
          
          
             Edge 
          
          
             29
          
          
            { 
          
          
             30
          
          
            int
          
          
             v, nxt; 
          
          
             31
          
           }e[MAXN *
          
             MAXN]; 
          
          
             32
          
          
            int
          
          
            in
          
          [MAXN], 
          
            out
          
          
            [MAXN]; 
          
          
             33
          
          
            int
          
          
             re[MAXN], head[MAXN]; 
          
          
             34
          
          
            bool
          
          
             vis[MAXN]; 
          
          
             35
          
           map<
          
            string
          
          , 
          
            int
          
          >
          
             M; 
          
          
             36
          
           vector<
          
            int
          
          >
          
             G[MAXN]; 
          
          
             37
          
          
            int
          
          
             ecnt, cnt; 
          
          
             38
          
          
             39
          
          
            int
          
           TopoSort(
          
            void
          
          
            ) 
          
          
             40
          
          
            { 
          
          
             41
          
           queue<
          
            int
          
          > Q1, Q2; 
          
            //
          
          
            Q1 !re Q2 re
          
          
             42
          
          
            for
          
           (
          
            int
          
           i=
          
            1
          
          ; i<=cnt; ++
          
            i) 
          
          
             43
          
          
             { 
          
          
             44
          
          
            if
          
           (!
          
            in
          
          
            [i]) 
          
          
             45
          
          
             { 
          
          
             46
          
          
            if
          
           (!
          
            re[i]) Q1.push (i); 
          
          
             47
          
          
            else
          
          
             Q2.push (i); 
          
          
             48
          
          
             } 
          
          
             49
          
          
             } 
          
          
             50
          
          
             51
          
          
            int
          
           ans = 
          
            0
          
          
            ; 
          
          
             52
          
          
            while
          
           (!Q1.empty () || !
          
            Q2.empty ()) 
          
          
             53
          
          
             { 
          
          
             54
          
          
            if
          
           (Q1.empty () && !Q2.empty ()) 
          
            //
          
          
            重啟
          
          
             55
          
          
             { 
          
          
             56
          
           ans++
          
            ; 
          
          
             57
          
          
            while
          
           (!Q2.empty ()) 
          
            //
          
          
            所有都重啟安裝
          
          
             58
          
          
             { 
          
          
             59
          
          
             Q1.push (Q2.front ()); Q2.pop (); 
          
          
             60
          
          
             } 
          
          
             61
          
          
             } 
          
          
             62
          
          
            while
          
           (!
          
            Q1.empty ()) 
          
          
             63
          
          
             { 
          
          
             64
          
          
            int
          
           u =
          
             Q1.front (); Q1.pop (); 
          
          
             65
          
           vis[u] = 
          
            true
          
          
            ; 
          
          
             66
          
          
            for
          
           (
          
            int
          
           i=head[u]; i!=-
          
            1
          
          ; i=
          
            e[i].nxt) 
          
          
             67
          
          
             { 
          
          
             68
          
          
            int
          
           v =
          
             e[i].v; 
          
          
             69
          
          
            if
          
           (!(--
          
            in
          
          
            [v])) 
          
          
             70
          
          
             { 
          
          
             71
          
          
            if
          
           (!
          
            re[v]) Q1.push (v); 
          
          
             72
          
          
            else
          
          
             Q2.push (v); 
          
          
             73
          
          
             } 
          
          
             74
          
          
             } 
          
          
             75
          
          
             } 
          
          
             76
          
          
             } 
          
          
             77
          
          
             78
          
          
            return
          
          
             ans; 
          
          
             79
          
          
            } 
          
          
             80
          
          
             81
          
          
            void
          
           init(
          
            void
          
          
            ) 
          
          
             82
          
          
            { 
          
          
             83
          
          
             M.clear (); 
          
          
             84
          
           ecnt = cnt = 
          
            0
          
          
            ; 
          
          
             85
          
           memset (
          
            in
          
          , 
          
            0
          
          , 
          
            sizeof
          
           (
          
            in
          
          
            )); 
          
          
             86
          
           memset (
          
            out
          
          , 
          
            0
          
          , 
          
            sizeof
          
           (
          
            out
          
          
            )); 
          
          
             87
          
           memset (re, 
          
            0
          
          , 
          
            sizeof
          
          
             (re)); 
          
          
             88
          
           memset (head, -
          
            1
          
          , 
          
            sizeof
          
          
             (head)); 
          
          
             89
          
           memset (vis, 
          
            false
          
          , 
          
            sizeof
          
          
             (vis)); 
          
          
             90
          
          
            } 
          
          
             91
          
          
             92
          
          
            void
          
           add_edge(
          
            int
          
           u, 
          
            int
          
          
             v) 
          
          
             93
          
          
            { 
          
          
             94
          
           e[ecnt].nxt =
          
             head[u]; 
          
          
             95
          
           e[ecnt].v =
          
             v; 
          
          
             96
          
           head[u] = ecnt++
          
            ; 
          
          
             97
          
          
            } 
          
          
             98
          
          
             99
          
          
            int
          
           main(
          
            void
          
          ) 
          
            //
          
          
            HDOJ 5098 Smart Software Installer
          
          
            100
          
          
            { 
          
          
            101
          
          
            //
          
          
            freopen ("I.in", "r", stdin);
          
          
            102
          
          
            103
          
          
            string
          
          
             s; 
          
          
            104
          
          
            char
          
           name[
          
            1050
          
          
            ]; 
          
          
            105
          
          
            int
          
           n, cas = 
          
            0
          
          ; scanf (
          
            "
          
          
            %d
          
          
            "
          
          , &
          
            n); getchar (); getchar (); 
          
          
            106
          
          
            while
          
           (n--
          
            ) 
          
          
            107
          
          
             { 
          
          
            108
          
          
             init (); 
          
          
            109
          
          
            while
          
          
             (getline (cin, s)) 
          
          
            110
          
          
             { 
          
          
            111
          
          
            if
          
           (s[
          
            0
          
          ] == 
          
            '
          
          
            \0
          
          
            '
          
          ) 
          
            break
          
          
            ; 
          
          
            112
          
          
             istringstream sin (s); 
          
          
            113
          
           sin >>
          
             name; 
          
          
            114
          
          
            int
          
           len = strlen (name); 
          
            int
          
           flag = 
          
            0
          
          
            ; 
          
          
            115
          
          
            if
          
           (name[len-
          
            2
          
          ] == 
          
            '
          
          
            *
          
          
            '
          
          ) {flag = 
          
            1
          
          ; name[len-
          
            2
          
          ] = 
          
            '
          
          
            \0
          
          
            '
          
          
            ;} 
          
          
            116
          
          
            else
          
           name[len-
          
            1
          
          ] = 
          
            '
          
          
            \0
          
          
            '
          
          
            ; 
          
          
            117
          
          
            118
          
          
            string
          
           u =
          
             name, v; 
          
          
            119
          
          
            if
          
           (M.find (u) ==
          
             M.end ()) 
          
          
            120
          
           M[u] = ++
          
            cnt; 
          
          
            121
          
           re[M[u]] =
          
             flag; 
          
          
            122
          
          
            123
          
          
            while
          
           (sin >>
          
             v) 
          
          
            124
          
          
             { 
          
          
            125
          
          
            if
          
           (M.find (v) ==
          
             M.end ()) 
          
          
            126
          
           M[v] = ++
          
            cnt; 
          
          
            127
          
          
             add_edge (M[v], M[u]); 
          
          
            128
          
          
            out
          
          [M[v]]++
          
            ; 
          
          
            129
          
          
            in
          
          [M[u]]++
          
            ; 
          
          
            130
          
          
             } 
          
          
            131
          
          
             } 
          
          
            132
          
           printf (
          
            "
          
          
            Case %d: %d\n
          
          
            "
          
          , ++
          
            cas, TopoSort ()); 
          
          
            133
          
          
             } 
          
          
            134
          
          
            135
          
          
            return
          
          
            0
          
          
            ; 
          
          
            136
          
          
            } 
          
          
            137
          
          
            138
          
          
            /*
          
          
            139
          
          
            Case 1: 1 
          
          
            140
          
          
            Case 2: 2 
          
          
            141
          
          
            */
          
        
      
    

?

雙拓?fù)渑判?HDOJ 5098 Smart Software Installer


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产精品人妻无码久久久2022 | 国内精品久久久久影院老司 | 免费在线公开视频 | 国产亚洲精品精品国产亚洲综合 | 久久综合一区二区三区 | 午夜精品久久久久久 | 啪啪免费网| 国产成人精品午夜 | 日韩一区二区在线观看 | yeyelu| 99精品视频免费观看 | 国产精品第三页在线看 | 小泽玛利亚一区二区 | 美女网站在线观看视频18 | 黑丝在线播放 | 加勒比欧美 | 国产精品久久久久久久久久久新郎 | 亲爱的热爱的电视剧免费观看 | 鲁一鲁综合 | 中国大陆高清aⅴ毛片 | 日韩一区二区免费看 | 国产日韩视频 | 久久精品 | 欧美亚洲精品一区 | 欧美一区二区三区在线播放 | 小明看看成人免费视频 | 天天干天天摸 | 人人干人人插 | 亚洲成人一区二区 | 亚洲五月 | 久久99国产精品久久99无号码 | 久久伊人一区二区三区四区 | 538prom国产在线视频一区 | 四虎影视最新网站在线播放 | 精品视频网站 | 久草资源 | 国产综合精品 | 99久久精品免费看国产免费 | 97久久精品人人做人人爽50路 | 亚洲黄色一级大片 | 久久日韩精品中文字幕网 |