• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            #include? < iostream >
            #include?
            < algorithm >

            using ? namespace ?std;

            #define ?N?10010

            struct ?Node{
            ????
            int ?x,?y;
            ????Node(?
            int ?a = ? 0 ,? int ?b = ? 0 ?):x(a),?y(b)?{}
            };

            int ??n,?idx[N * 2 ],?data[N * 2 ],?pos;
            Node?d[N];

            int ?bfind(? int ?v?){
            ????
            int ?left = ? 0 ,?right = ?n * ? 2 ;
            ????
            while (?left + ? 1 < ?right?){
            ????????
            int ?m = ?(left + ?right) >> ? 1 ;
            ????????
            if (?data[m] < ?v?)?left = ?m;
            ????????
            else ? if (?data[m] > ?v?)?right = ?m;
            ????????
            else ? return ?idx[m];
            ????}
            ????
            return ?idx[left];
            }

            int ?tb[N * 8 ],?flag[N];
            void ?insert(? int ?l,? int ?r,? int ?a,? int ?b,? int ?rt,? int ?c?){
            ????
            if (?l == ?a? && ?r == ?b?){
            ????????tb[rt]
            = ?c;? return ;?}
            ????
            int ?m = ?(l + ?r) >> ? 1 ;
            ????
            if (?tb[rt] > ? 0 ?){
            ????????tb[rt
            << 1 ] = ?tb[rt],?tb[(rt << 1 ) + 1 ] = ?tb[rt],?tb[rt] = ? 0 ;?}
            ????
            if (?b <= ?m?)?insert(?l,?m,?a,?b,?rt << ? 1 ,?c?);
            ????
            else ? if (?a > ?m?)?insert(?m + ? 1 ,?r,?a,?b,?(rt << 1 ) + ? 1 ,?c?);
            ????
            else {
            ????????insert(?l,?m,?a,?m,?rt
            << ? 1 ,?c?);
            ????????insert(?m
            + ? 1 ,?r,?m + ? 1 ,?b,?(rt << 1 ) + ? 1 ,?c?);?}
            }
            void ?calc(? int ?l,? int ?r,? int ?rt?){
            ????
            if (?tb[rt] > ? 0 ?)?{?flag[?tb[rt]?] = ? 1 ;? return ;?}
            ????
            else {
            ????????
            if (?l == ?r?)? return ;
            ????????
            int ?m = ?(l + ?r) >> ? 1 ;
            ????????calc(?l,?m,?rt
            << ? 1 ?);
            ????????calc(?m
            + ? 1 ,?r,?(rt << 1 ) + ? 1 ?);
            ????}
            }

            int ?main(){
            ????
            int ?test;
            ????scanf(
            " %d " , & test);
            ????
            while (?test -- ?){
            ????????scanf(
            " %d " , & n?);
            ????????
            int ?u,?v;
            ????????
            for (? int ?i = ? 0 ;?i < ?n;? ++ i?){
            ????????????scanf(
            " %d%d " , & u, & v?);
            ????????????d[i]
            = ?Node(?u,?v?);
            ????????????data[i
            << 1 ] = ?u,?data[(i << 1 ) + 1 ] = ?v;
            ????????}
            ????????sort(?data,?data
            + ?n * ? 2 ?);
            ????????pos
            = ? 1 ;?idx[ 0 ] = ? 1 ;
            ????????
            for (? int ?i = ? 1 ;?i < ?n * ? 2 ;? ++ i?)
            ????????
            if (?data[i] != ?data[i - 1 ]?)?idx[i] = ? ++ pos;
            ????????
            else ??idx[i] = ?pos;
            ????????
            ????????memset(?tb,?
            0 ,? sizeof (tb)?);?
            ????????memset(?flag,?
            0 ,? sizeof (flag)?);
            ????????
            for (? int ?i = ? 0 ;?i < ?n;? ++ i?){
            ????????????u
            = ?bfind(?d[i].x?),?v = ?bfind(?d[i].y?);
            ????????????insert(?
            1 ,?pos,?u,?v,? 1 ,?i + ? 1 ?);
            ????????}
            ????????calc(?
            1 ,?pos,? 1 ?);
            ????????
            int ?ans = ? 0 ;
            ????????
            for (? int ?i = ? 1 ;?i <= ?n;? ++ i?)
            ????????
            if (?flag[i]?)?ans ++ ;
            ????????printf(
            " %d\n " ,?ans?);
            ????}
            ????
            return ? 0 ;
            }
            posted on 2009-07-14 20:19 Darren 閱讀(369) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 數(shù)據(jù)結(jié)構(gòu)
            久久精品aⅴ无码中文字字幕重口| 亚洲国产精品久久电影欧美| 久久99精品久久久久久| 久久精品aⅴ无码中文字字幕不卡 久久精品aⅴ无码中文字字幕重口 | 国内精品久久久久影院网站| 国产精品日韩深夜福利久久| 一本综合久久国产二区| 亚洲国产精品无码久久| 国产成人综合久久精品尤物| 久久综合狠狠综合久久97色| 嫩草伊人久久精品少妇AV| 97r久久精品国产99国产精| 九九热久久免费视频| 无码人妻久久一区二区三区蜜桃 | 亚洲AV日韩精品久久久久久| 成人国内精品久久久久影院VR| 少妇被又大又粗又爽毛片久久黑人 | 久久久久99精品成人片| 日韩精品久久无码人妻中文字幕| 国产精品久久久久无码av| 久久综合偷偷噜噜噜色| 国产精品美女久久久久AV福利| 77777亚洲午夜久久多喷| 精品无码久久久久久久久久| 97久久国产亚洲精品超碰热| 欧美国产成人久久精品| 国产三级精品久久| 国产精品99久久久久久人| 亚洲午夜福利精品久久| 91精品国产91久久久久久青草| 99精品国产99久久久久久97| 天堂无码久久综合东京热| 国产—久久香蕉国产线看观看| 97精品伊人久久大香线蕉app| 蜜桃麻豆WWW久久囤产精品| 久久国产影院| 国内精品免费久久影院| 九九久久精品无码专区| 久久久艹| 欧美精品丝袜久久久中文字幕 | 性欧美丰满熟妇XXXX性久久久|