把这题想复杂了,一直在考虑怎么快速的判断将选的边和已选的边无冲突,后来经人提醒发现这根本没必要,反正数据也不大开两个数组爆搜就OK了,搜索之前要先排除两种没必要搜的情况,这很容易想到,爆搜的时候注意几个小细节就可以了(代码代码注释中已标好)

  1. #include<cstdio>
  2. #include<cstring>
  3. #include<iostream>
  4. #include<vector>
  5. #include<utility>
  6. using namespace std;
  7. typedef pair<int,int> P;
  8.  
  9. vector<int> gt[];
  10. int g[][];
  11. int c0[],c1[];
  12. int count;
  13. int n,m;
  14. void dfs(int x,int y)
  15. {
  16. if(x>n)
  17. {
  18. count++;
  19. // printf("%d\n",count);
  20. return;
  21. }
  22. else if(y>n)
  23. {
  24. if(c0[x]!=c1[x]) return;
  25. dfs(x+,x+); // 注意这里不是从1开始 原因很简单 因为前面的都已经标记过了
  26. }
  27. else
  28. if(g[x][y])
  29. {
  30. c0[x]++;
  31. c0[y]++; // 注意这里是y 把一条边划分之后,两个点都被划分了
  32. dfs(x,y+);
  33. c0[x]--;
  34. c0[y]--;
  35.  
  36. c1[x]++;
  37. c1[y]++;
  38. dfs(x,y+);
  39. c1[x]--;
  40. c1[y]--;
  41. }
  42. else if(g[x][y]==) dfs(x,y+);
  43. }
  44. int main()
  45. {
  46. int t;
  47. scanf("%d",&t);
  48. while(t--)
  49. {
  50. count=;
  51. scanf("%d%d",&n,&m);
  52. memset(g,,sizeof(g));
  53. memset(c1,,sizeof(c1));
  54. memset(c0,,sizeof(c0));
  55. for(int k=;k<=n;k++)
  56. gt[k].clear();
  57. for(int i=;i<m;i++)
  58. {
  59. int a,b;
  60. scanf("%d%d",&a,&b);
  61. gt[a].push_back(b);
  62. gt[b].push_back(a);
  63. g[a][b]=g[b][a]=;
  64. }
  65. int f=;
  66. for(int j=;j<=n;j++)
  67. {
  68. if(gt[j].size()%) f=;
  69. }
  70. if(f||m%)
  71. {
  72. printf("0\n");
  73. continue;
  74. }
  75. dfs(,); // 0 代表 网络 1代表现实
  76. printf("%d\n",count);
  77. }
  78. }

,无脑不许想太多、、、、

2015多校训练第二场 hdu5305的更多相关文章

  1. CSU 多校训练第二场 J Pinemi Puzzles

    传送门:http://acm.csu.edu.cn:20080/csuoj/problemset/problem?pid=2279 题意: 代码: #include <set> #incl ...

  2. 2015 多校赛 第二场 1006 (hdu 5305)

    Problem Description There are n people and m pairs of friends. For every pair of friends, they can c ...

  3. 2015 多校赛 第二场 1004 hdu(5303)

    Problem Description There are n apple trees planted along a cyclic road, which is L metres long. You ...

  4. 2015 多校赛 第二场 1002 (hdu 5301)

    Description Your current task is to make a ground plan for a residential building located in HZXJHS. ...

  5. HDU 5305 Friends (搜索+剪枝) 2015多校联合第二场

    開始对点搜索,直接写乱了.想了想对边搜索,尽管复杂度高.剪枝一下水过去了. 代码: #include<cstdio> #include<iostream> #include&l ...

  6. 18牛客多校训练第二场 J farm

    题意:一个n×m的农田, 每个小格子都有一种作物, 现在喷t次农药,每次农药覆盖一个矩形, 该矩形里面与农药类型不同的植物都会死掉, 求最后植物的死亡数是多少. 题解:二维树状数组. 每次喷农药的时候 ...

  7. 2019HDU多校训练第二场 Longest Subarray

    题意:给你一个串,问满足以下条件的子串中最长的是多长:对于每个数字,要么在这个子串没出现过,要么出现次数超过k次. 思路:对于这类问题,常常转化为数据结构的询问问题.我们考虑枚举右端点,对于当前右端点 ...

  8. 牛客网多校训练第二场D Kth Minimum Clique

    链接:https://ac.nowcoder.com/acm/contest/882/D来源:牛客网 Given a vertex-weighted graph with N vertices, fi ...

  9. hdu 5288||2015多校联合第一场1001题

    pid=5288">http://acm.hdu.edu.cn/showproblem.php?pid=5288 Problem Description OO has got a ar ...

随机推荐

  1. ruby YAML.load 和YAML.load_file区别

    1. load( io ) Load a document from the current io stream. File.open( 'animals.yaml' ) { |yf| YAML::l ...

  2. Random类、ThreadLocalRandom类

    Random和ThreadLocalRandom类均用于生成伪随机数. Random的构造函数: Random()     默认以系统当前时间为种子,相当于Random(System.currentT ...

  3. 一个例子说明Jsp三大重要内置对象的生命周期

    此处Jsp的三大内置对象指:request,session以及application.他们共有的方法:setAttribute,getAttribute,方法名和方法作用都是相同的,但是作用范围不一样 ...

  4. swift基础-3

    fallthrough 贯穿 case  可以不必写break 如果不需要知道区间内 每一项的值  可以使用 下划线 —— 来代替变量名 忽略 对该值的访问 for index in 1...5{ p ...

  5. 9、数值的整数次方------------>剑指offer系列

    数值的整数次方 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 思路 这道题逻辑上很简单,但很容易出错 关键是要考虑全面,考虑到所有情况 ...

  6. 分享eclipse自动生成java注释方法

    设置方法介绍: eclipse中:Windows->Preferences->Java->Code Style->Code Template->Comments,然后对应 ...

  7. 排序算法C语言实现

    大学有一门课程叫做数据结构,严蔚敏的课本,其中详细介绍了集中经典的排序算法,学习复习反复几次,但是直到现在仍然只记得名字了,所以想记录下来,随时复习直至牢记于心.经常面试的朋友知道,排序算法在面试中出 ...

  8. jsp四大作用域之page

    <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding= ...

  9. (转)在SQL Server 2016,Visual Studio 2017环境下,连接数据库屡屡失败,在connectionString上出的问题

    适用情景: 1,ServerVersion出了问题,“SqlCnt.ServerVersion”引发了类型“System.InvalidOperationException”的异常 2,在String ...

  10. 跑yscacaca/HHAR-Data-Process出现的问题

    直接按照说明跑: python dataAli-sameUserDevice.py python pairDataFile.py python sep_HHAR_data.py 但在sep_HHAR_ ...