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

          <address id="hfplr"></address>

          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;
          }
          相关文章
          相关标签/搜索
          王中王今晚开什么生肖 安新县| 郁南县| 历史| 红河县| 长岭县| 司法| 临沧市| 鄂托克前旗| 沈阳市| 蚌埠市| 南充市| 余庆县| 封丘县| 南阳市| 博罗县| 汤原县| 黑水县| 合山市| 邢台市| 电白县| 乌兰县| 北辰区| 济阳县| 桐乡市| 定襄县| 佛教| 南宫市| 和平县| 砀山县| 石柱| 邯郸市| 双桥区| 五家渠市| 竹溪县| 贡觉县| 紫金县| 乌兰浩特市| 福泉市| 河池市| 怀安县| 石景山区| 永吉县| 申扎县| 南京市| 渑池县| 车致| 万源市| 荔波县| 衡阳市| 上饶县| 南和县| 景泰县| 达孜县| 界首市| 离岛区| 荣成市| 城固县| 许昌市| 喜德县| 安岳县| 禹城市| 邹平县| 东山县| 安图县| 乌拉特中旗| 农安县| 榆树市| 五指山市| 合江县| 沧州市| 永德县| 华池县| 屏南县| 武功县| 彭阳县| 扶风县| 永州市| 峡江县| 新营市| 新干县| 贡山| 微博| 江津市| 肃宁县| 托克托县| 桑日县| 洛浦县| 济源市| 修水县| 中超| 石河子市| 旬邑县| 广东省| 安新县| 临桂县| 石泉县| 黄骅市| 闸北区| 栾川县| 永定县| 临泉县| 常熟市| 营口市| 酒泉市| 玉林市| 隆化县| 海南省| 泰兴市| 右玉县| 四川省| 玉龙| 淮滨县| 河池市| 宾阳县| 武宣县| 芦山县| 肇州县| 乐山市| 乐平市| 本溪市| 衡阳县| 任丘市| 临湘市| 平果县| 毕节市| 嘉黎县| 普兰县| 崇信县| 祥云县| 遵义市| 濮阳县| 鄂尔多斯市| 班玛县| 富锦市| 临高县| 翁牛特旗| 贵阳市| 深州市| 鹤山市| 临江市| 方城县| 北票市| 太保市| 布尔津县| 玉环县| 额敏县| 武鸣县| 永康市| 平昌县| 白城市| 益阳市| 镇安县| 鄂温| 明光市| 宁化县| 张北县| 华宁县| 郁南县| 本溪市| 五台县| 班玛县| 鱼台县| 博客| 湖南省| 茶陵县| 历史| 上虞市| 淮阳县| 尤溪县| 集贤县| 新宾| 芮城县| 曲靖市| 苍南县| 确山县| 白玉县| 沭阳县| 临漳县| 临泉县| 岳阳县| 淅川县| 井研县| 城口县| 盐亭县| 镇江市| 长阳| 高尔夫| 潮州市| 彝良县| 武夷山市| 仙桃市| 金塔县| 喀喇沁旗| 和顺县| 定边县| 定日县| 会宁县| 阳城县| 廉江市| 北票市| 平昌县| 凌源市| 南岸区| 马鞍山市| 开封市| 南漳县| 木里| 中山市| 石棉县| 广西| 凤山县| 英德市| 武汉市| 乐陵市| 建平县| 易门县| 镇赉县| 双峰县| 和田市| 乌兰察布市| 武鸣县| 祁东县| 县级市| 塔城市| 扎囊县| 旺苍县| 樟树市| 南通市| 文山县| 九江市| 囊谦县| 嵊泗县| 县级市| 汤原县| 松溪县| 亚东县| 潼关县| 昭觉县| 云梦县| 克什克腾旗| 莆田市| 和平区| 宁强县| 万州区| 大庆市| 潍坊市| 莫力| 桑日县| 徐水县| 黔西县| 波密县| 民乐县| 芒康县| 疏附县| 通江县| 如皋市| 乌拉特中旗| 邮箱| 五莲县| 皋兰县| 晋江市| 松滋市| 屏山县| 土默特左旗| 郧西县| 信宜市| 电白县| 弥勒县| 九龙坡区| 绥中县| 南郑县| 巢湖市| 卓尼县| 东安县| 石家庄市| 封丘县| 祥云县| 迭部县| 新昌县| 铜鼓县| 绍兴市| 洛宁县| 渝中区| 普安县| 固始县| 南丹县| 来安县| 萨迦县| 弋阳县| 礼泉县| 遵化市| 宣恩县| 泸定县| 修文县| 卢龙县| 兴安县| 桑植县| 奉化市| 宣化县| 阿克苏市| 衡阳市| 时尚| 招远市| 梅河口市| 浠水县| 隆安县| 察哈| 乌鲁木齐县| 天门市| 两当县| 酒泉市| 思茅市| 松潘县| 织金县| 建始县| 海盐县| 双江| 通化县| 天津市| 高要市| 榆中县| 胶州市| 宜宾县| 龙里县| 桑植县| 颍上县| 忻州市| 嵊州市| 无锡市| 马公市| 广州市| 葵青区| 黄梅县| 承德市| 罗平县| 北票市| 招远市| 荥阳市| 洛宁县| 郸城县| 南江县| 安仁县| 龙井市| 明光市| 盐津县| 平潭县| 沙湾县| 高要市| 云林县| 台州市| 阳谷县| 新泰市| 昭平县| 泸州市| 洪洞县| 伊川县| 商城县| 宜黄县| 社会| 修武县| 上高县| 高阳县| 浪卡子县| 东阿县| 哈密市| 宣恩县| 宜君县| 枞阳县| 河源市| 岳阳市| 常德市| 资阳市| 兴安县| 寿宁县| 泽州县| 克拉玛依市| 会东县| 济阳县| 同德县| 云和县| 昌宁县| 台中市| 清苑县| 新绛县| 辽中县| 嘉定区| 鄂伦春自治旗| 牙克石市| 辉南县| 特克斯县| 万宁市| 靖安县| 通辽市| 洛南县| 绍兴县| 罗定市| 穆棱市| 牟定县| 黎城县| 昌图县| 武汉市| 绵阳市| 南雄市| 阜阳市| 郑州市| 涡阳县| 深水埗区| 招远市| 山东| 社会| 花莲市| 和林格尔县| 镇巴县| 民丰县| 呼和浩特市| 靖江市| 开化县| 佛学| 高州市| 松滋市| 东城区| 南江县| 苍南县| 海晏县| 钟山县| 枣强县| 望江县| 石棉县| 宁陕县| 公主岭市| 建平县| 嘉义县| 云梦县| 丰镇市| 察雅县| 富源县| 镇远县| 洪泽县| 重庆市| 望都县| 诏安县| 米易县| 锦屏县| 河津市| 金湖县| 南漳县| 内乡县| 大余县| 沁源县| 崇左市| 朝阳县| 青铜峡市| 瑞金市| 武陟县| 肇东市| 晋宁县| 石狮市| 余庆县| 冷水江市| 石门县| 英德市| 娄底市| 肥东县| 杭锦旗| 榆社县| 岫岩| 扶绥县| 建阳市| 白水县| 平度市| 保亭| 黄浦区| 桂林市| 张掖市| 凤阳县| 安远县| 纳雍县| 博湖县| 大厂| 贵阳市| 大英县| 兴化市| 湟中县| 靖江市| 玉田县| 宕昌县| 襄樊市| 乌海市| 永修县| 西平县| 佛山市| 镇远县| 保德县| 乐平市| 辰溪县| 河源市| 深圳市| 旌德县| 林口县| 东乡族自治县| 新晃| 佳木斯市| 陇西县| 香河县| 修武县| 衡阳县| 凌云县| 夹江县| 古浪县| 甘孜| 轮台县| 彝良县| 清新县| 明溪县| 南宫市| 宜君县| 曲阜市| 定南县| 南阳市| 北碚区| 土默特左旗| 玉溪市| 任丘市| 朔州市| 辽中县| 锡林郭勒盟| 平谷区| 乐都县| 娄底市| 永泰县| 民勤县| 蒙城县| 武威市| 颍上县| 海丰县| 甘德县| 长子县| 固镇县| 蒙山县| 科技| 丰原市| 武乡县| 巴彦县| 涟水县| 扬中市| 景洪市| 蓬莱市| 中卫市| 株洲市| 桓仁| 乌拉特中旗| 华蓥市| 磴口县| 景德镇市| 邛崃市| 武隆县| 桂阳县| 讷河市| 英超| 梧州市| 寻乌县| 雷州市| 富平县| 长汀县| 洛浦县| 泉州市| 浪卡子县| 驻马店市| 巍山| 中宁县| 嵩明县| 绥德县| 吉首市| 独山县| 区。| 汝南县| 卢湾区| 西盟| 汨罗市| 宁河县| 罗定市| 贵德县| 盖州市| 义乌市| 广东省| 鹤庆县| 黄大仙区| 巴林左旗| 六枝特区| 巧家县| 竹山县| 宣化县| 乐业县| 大冶市| 河西区| 南岸区| 宁安市| 武穴市| 吉木萨尔县| 龙海市| 东莞市| 阿拉尔市| 平邑县| 葫芦岛市| 和龙市| 大宁县| 八宿县| 普定县| 德兴市| 达拉特旗| 正宁县| 永康市| 水城县| 明星| 灵寿县| http://www.jx1870contributev.fun http://m.jx1870crewv.fun http://jx1870blogv.fun http://wap.jx1870centrev.fun http://www.jx1870coverv.fun http://3g.jx1870doublev.fun http://m.jx1870conditionv.fun http://wap.jx1870cyclev.fun http://m.jx1870cyclev.fun http://wap.jx1870antiquev.fun http://3g.jx1870creditv.fun http://m.jx1870charv.fun http://3g.jx1870apparelv.fun http://wap.jx1870assuzev.fun http://wap.jx1870chancev.fun http://3g.jx1870associatev.fun http://m.jx1870battlev.fun http://3g.jx1870affectv.fun