<address id="jv157"></address>
<sub id="jv157"></sub>

      <address id="jv157"></address>

      <thead id="jv157"></thead>

        PTA 甲级 1139

        https://pintia.cn/problem-sets/994805342720868352/problems/994805344776077312

        其实这道题目不难,但是有很多坑点!

        首先数据是性别+id,id不是数字!

        输出的时候必须前面补0,

        另外什么自己和自己连边,重复的边都要注意,

        更注意的是 -0000,这个数据,不能用int来读,我艹

        #include <iostream>
        #include <map>
        #include <algorithm>
        #include <stdio.h>
        #include <stdlib.h>
        #include <math.h>
        #include <string>
        #include <string.h>
        
        using namespace std;
        int n;
        int m;
        
        struct Node
        {
            int value;
            int next;
        
        }edge[200005];
        
        struct Answer
        {
            int a;
            int b;
        
        }res[200005];
        
        int Compare(Answer a,Answer b)
        {
            if(a.a == b.a)
                return a.b < b.b;
            return a.a < b.a;
        }
        
        map<pair<int,int>,int> dic;
        map<pair<int,int>,int> dic2;
        
        int pos;
        int head[10005];
        
        int gender[10005];
        
        void Add(int x,int y)
        {
            edge[pos].value = y;
            edge[pos].next = head[x];
            head[x] = pos++;
        }
        
        int tag;
        
        void fun(int x,int y)
        {
            tag=0;
        
            dic2.clear();
        
            int i = head[x];
        
            int a[305];
            int j=0;
        
            while(i != -1)
            {
                if(gender[edge[i].value] == gender[x]
                 && edge[i].value != y && edge[i].value!=x) {
                    a[j++] = edge[i].value;
                }
        
                i = edge[i].next;
            }
        
        
            i = head[y];
            int b[305];
            int k=0;
        
            while(i!=-1)
            {
                if(gender[edge[i].value] == gender[y]
                   && edge[i].value != x && edge[i].value!=y) {
                    b[k++] = edge[i].value;
                }
        
                i = edge[i].next;
            }
        
            for(int p=0;p<j;p++)
            {
                for(int q=0;q<k;q++)
                {
                    if(a[p]==b[q])
                        continue;
        
                    if(dic[make_pair(a[p],b[q])]==1)
                    {
                        Answer s;
                        s.a = a[p];
                        s.b = b[q];
                        res[tag++] = s;
                    }
                }
            }
        
            sort(res,res+tag,Compare);
        
            printf("%d\n",tag);
        
            for(int i=0;i<tag;i++)
            {
        
                printf("%04d %04d\n",res[i].a,res[i].b);
            }
        
        }
        
        
        int main()
        {
            scanf("%d%d",&n,&m);
        
            memset(head,-1,sizeof(head));
            pos=0;
        
            string xx,yy;
            int x;
            int y;
            for(int i=0;i<m;i++)
            {
                cin>>xx>>yy;
        
        
                 x = atoi(xx.c_str());
                 y = atoi(yy.c_str());
        
        
                if(x<0 || xx[0]=='-')
                    gender[abs(x)]=-1;
                else
                    gender[x]=1;
        
                if(y<0 || yy[0]=='-')
                    gender[abs(y)]=-1;
                else
                    gender[y]=1;
        
                x = abs(x);
                y = abs(y);
        
        
                if(dic[make_pair(x,y)]==1)
                    continue;
        
                Add(x,y);
                Add(y,x);
        
        
                dic[make_pair(x,y)]=1;
                dic[make_pair(y,x)]=1;
            }
        
            int k;
            scanf("%d",&k);
        
        
            for(int i=0;i<k;i++)
            {
                scanf("%d%d",&x,&y);
        
                x = abs(x);
                y = abs(y);
        
                fun(x,y);
            }
            return 0;
        }
        相关文章
        相关标签/搜索
        2020年正版综合资料 三原县| 五家渠市| 肇东市| 河东区| 宽甸| 仁寿县| 县级市| 三原县| 分宜县| 肇庆市| 始兴县| 波密县| 龙山县| 民权县| 团风县| 行唐县| 乐陵市| 江源县| 桃源县| 嘉善县| 北海市| 太仆寺旗| 尚义县| 宁南县| 青龙| 宿州市| 蓬溪县| 韶山市| 东乡县| 克拉玛依市| 本溪市| 金门县| 巴塘县| 寿宁县| 武平县| 柳州市| 毕节市| 金堂县| 化隆| 正镶白旗| 马山县| 宜宾县| 江孜县| 嘉义县| 和政县| 三门县| 上虞市| 通许县| 彩票| 独山县| 英吉沙县| 玉龙| 娱乐| 平远县| 镶黄旗| 乌拉特中旗| 奉贤区| 惠水县| 游戏| 瑞昌市| 白河县| 洛扎县| 河曲县| 古交市| 莆田市| 夏邑县| 海淀区| 屏东县| 西藏| 鹤山市| 永年县| 松潘县| 深圳市| 石阡县| 栾城县| 宁化县| 綦江县| 江川县| 那曲县| 南木林县| 绥棱县| 木里| 北川| 和政县| 常德市| 岱山县| 安陆市| 若尔盖县| 宁陵县| 阿图什市| 本溪市| 西乌珠穆沁旗| 满城县| 旬阳县| 岚皋县| 棋牌| 卢龙县| 湘潭市| 含山县| 华宁县| 岐山县| 南京市| 利川市| 柳州市| 逊克县| 明溪县| 阿鲁科尔沁旗| 湖北省| 镇江市| 庆阳市| 舟山市| 渝中区| 阳原县| 卫辉市| 甘南县| 龙海市| 黄梅县| 商城县| 婺源县| 南通市| 永胜县| 巴彦县| 盐津县| 虹口区| 麻江县| 辛集市| 石家庄市| 嘉义县| 临沂市| 柳林县| 昌乐县| 白水县| 潍坊市| 贵阳市| 石河子市| 依兰县| 包头市| 丰镇市| 舟曲县| 遂川县| 武强县| 重庆市| 虎林市| 开平市| 平罗县| 开原市| 桑日县| 东乌珠穆沁旗| 嘉义市| 古蔺县| 卢氏县| 新昌县| 鄂托克前旗| 舞钢市| 湖口县| 竹山县| 上高县| 田阳县| 卫辉市| 江西省| 墨玉县| 锦州市| 东莞市| 岑巩县| 若尔盖县| 梁山县| 郸城县| 原阳县| 台北市| 攀枝花市| 赞皇县| 新民市| 安徽省| 泸溪县| 台安县| 邹城市| 新竹县| 富宁县| 梅河口市| 美姑县| 西华县| 涡阳县| 阿拉善右旗| 明溪县| 塔河县| 绩溪县| 筠连县| 东丰县| 岐山县| 阳原县| 吉林市| 九江县| 常山县| 潮州市| 布拖县| 深圳市| 岳池县| 理塘县| 岢岚县| 蓬安县| 奉贤区| 阿合奇县| 六安市| 赤水市| 嘉定区| 衡东县| 安岳县| 靖州| 天门市| 资溪县| 黎川县| 界首市| 司法| 新源县| 瑞昌市| 遂溪县| 江永县| 牟定县| 时尚| 罗江县| 鹤山市| 嘉祥县| 安吉县| 岳普湖县| 新野县| 平定县| 介休市| 中江县| 金塔县| 穆棱市| 西和县| 内黄县| 丹棱县| 台南市| 兴化市| 武乡县| 邳州市| 临江市| 迁西县| 商南县| 眉山市| 芜湖县| 麟游县| 深圳市| 汽车| 新民市| 宜章县| 日喀则市| 张掖市| 阜南县| 万载县| 商丘市| 乌拉特后旗| 昭平县| 巴塘县| 无极县| 澎湖县| 襄汾县| 永宁县| 德保县| 寿宁县| 河西区| 德保县| 双鸭山市| 新蔡县| 玉田县| 铁力市| 阳谷县| 上杭县| 乾安县| 手机| 团风县| 定陶县| 涿州市| 堆龙德庆县| 河池市| 榆树市| 治多县| 建瓯市| 浦县| 咸丰县| 三原县| 无为县| 高唐县| 锦屏县| 贺兰县| 三江| 偃师市| 含山县| 涞源县| 遵义县| 黄山市| 钟山县| 朝阳市| 平和县| 宁乡县| 内江市| 安达市| 淮阳县| 清新县| 武冈市| 邹城市| 文成县| 洛宁县| 商河县| 丹东市| 万源市| 肥东县| 白河县| 凤凰县| 廊坊市| 丰顺县| 都匀市| 平定县| 乌兰浩特市| 阳江市| 宁强县| 奇台县| 甘谷县| 翁源县| 利川市| 南陵县| 延长县| 弥渡县| 平乡县| 天门市| 合作市| 分宜县| 阳春市| 五家渠市| 涿州市| 新晃| 大冶市| 东明县| 南阳市| 呼和浩特市| 湖州市| 松阳县| 闻喜县| 紫阳县| 大安市| 六枝特区| 南投市| 休宁县| 烟台市| 大英县| 尼勒克县| 临潭县| 海晏县| 囊谦县| 宜宾县| 博兴县| 新宁县| 九台市| 枣强县| 普安县| 方正县| 四川省| 浦东新区| 蕉岭县| 七台河市| 缙云县| 祁阳县| 米易县| 南岸区| 驻马店市| 泰顺县| 姜堰市| 泰兴市| 芜湖县| 靖远县| 元氏县| 托克逊县| 乐安县| 同心县| 长兴县| 兴海县| 沧源| 新竹县| 冀州市| 元氏县| 滁州市| 咸宁市| 昌邑市| 井冈山市| 四子王旗| 西安市| 湘潭市| 涿鹿县| 上林县| 泰兴市| 大新县| 新营市| 临海市| 六枝特区| 马山县| 竹北市| 河东区| 五大连池市| 会宁县| 阳高县| 清河县| 陕西省| 岳池县| 鱼台县| 庄河市| 个旧市| 庆云县| 贺兰县| 东至县| 城固县| 且末县| 邮箱| 聂荣县| 迁西县| 安丘市| 武隆县| 彭州市| 赫章县| 获嘉县| 黑龙江省| 汉阴县| 南雄市| 凤翔县| 邳州市| 甘孜县| 平谷区| 鸡东县| 资中县| 科技| 南江县| 扎囊县| 礼泉县| 衡山县| 六盘水市| 邛崃市| 罗定市| 屏南县| 江城| 德兴市| 图们市| 桃园市| 日照市| 罗江县| 吴堡县| 循化| 海盐县| 鹤壁市| 稻城县| 宁强县| 伽师县| 石屏县| 铜川市| 榕江县| 武威市| 株洲县| 武陟县| 长岭县| 华宁县| 乌拉特后旗| 四子王旗| 洛宁县| 石嘴山市| 天津市| 商河县| 鄢陵县| 龙川县| 岳池县| 濮阳县| 上高县| 孝义市| 富源县| 许昌县| 沽源县| 大邑县| 樟树市| 酒泉市| 长春市| 方城县| 百色市| 汉中市| 承德县| 紫云| 美姑县| 乌苏市| 勐海县| 蓬溪县| 昭觉县| 邵阳市| 奉新县| 江华| 蚌埠市| 涿鹿县| 建瓯市| 台北县| 五莲县| 乌鲁木齐县| 泰和县| 恩施市| 百色市| 资讯| 原阳县| 石狮市| 濮阳县| 长海县| 乌鲁木齐县| 凤冈县| 岳阳县| 上犹县| 怀安县| 连平县| 阿城市| 洪雅县| 抚宁县| 青浦区| 榕江县| 曲周县| 瓦房店市| 连城县| 平舆县| 克山县| 肃北| 天气| 龙州县| 抚顺县| 温宿县| 道孚县| 泗阳县| 泸州市| 额敏县| 辉南县| 万安县| 云和县| 文山县| 仲巴县| 永宁县| 安多县| 安龙县| 东平县| 逊克县| 贵南县| 平舆县| 白银市| 南丹县| 高唐县| 乌兰县| 长宁区| 湘阴县| 宜州市| 大方县| 丹凤县| 外汇| 抚宁县| 长治市| 石林| 雷波县| 招远市| 尉氏县| 营口市| 叶城县| 旺苍县| 新昌县| 青龙| 东阿县| 黄陵县| 景宁| 浮山县| 拜泉县| 法库县| 蓬莱市| 洞口县| 奉新县| 平定县| 晋州市| 岚皋县| 马关县| 宝丰县| 时尚| 临沂市| 东宁县| 醴陵市| 洛隆县| 盱眙县| 咸宁市| 叙永县| 沙湾县| 屏东市| 佛学| 白河县| 高台县| 桑日县| 周至县| 商河县| 鸡西市| 天气| 铅山县| 蓝田县| 清远市| 仲巴县| 岳西县| 丹巴县| 福贡县| 科尔| 车险| 扶风县| 阿坝县| 清远市| 渝北区| 喜德县| 监利县| 安吉县| 卓尼县| 衡山县| 呼和浩特市| 仲巴县| http://m.jx1870indexv.fun http://www.jx1870labelv.fun http://www.jx1870knowv.fun http://jx1870indexv.fun http://jx1870followv.fun http://m.jx1870factorv.fun http://wap.jx1870forestv.fun http://m.jx1870enterv.fun http://m.hz0j1r1vo.fun http://wap.jx1870expandv.fun http://wap.hz0j4r4vo.fun http://jx1870explainv.fun http://www.hz0j1r5vo.fun http://www.jx1870greenv.fun http://jx1870jobv.fun http://www.hz0j0r5vo.fun http://www.hz0j3r8vo.fun http://www.jx1870generatev.fun