2015多校训练第二场 hdu5305
把这题想复杂了,一直在考虑怎么快速的判断将选的边和已选的边无冲突,后来经人提醒发现这根本没必要,反正数据也不大开两个数组爆搜就OK了,搜索之前要先排除两种没必要搜的情况,这很容易想到,爆搜的时候注意几个小细节就可以了(代码代码注释中已标好)
- #include<cstdio>
- #include<cstring>
- #include<iostream>
- #include<vector>
- #include<utility>
- using namespace std;
- typedef pair<int,int> P;
- vector<int> gt[];
- int g[][];
- int c0[],c1[];
- int count;
- int n,m;
- void dfs(int x,int y)
- {
- if(x>n)
- {
- count++;
- // printf("%d\n",count);
- return;
- }
- else if(y>n)
- {
- if(c0[x]!=c1[x]) return;
- dfs(x+,x+); // 注意这里不是从1开始 原因很简单 因为前面的都已经标记过了
- }
- else
- if(g[x][y])
- {
- c0[x]++;
- c0[y]++; // 注意这里是y 把一条边划分之后,两个点都被划分了
- dfs(x,y+);
- c0[x]--;
- c0[y]--;
- c1[x]++;
- c1[y]++;
- dfs(x,y+);
- c1[x]--;
- c1[y]--;
- }
- else if(g[x][y]==) dfs(x,y+);
- }
- int main()
- {
- int t;
- scanf("%d",&t);
- while(t--)
- {
- count=;
- scanf("%d%d",&n,&m);
- memset(g,,sizeof(g));
- memset(c1,,sizeof(c1));
- memset(c0,,sizeof(c0));
- for(int k=;k<=n;k++)
- gt[k].clear();
- for(int i=;i<m;i++)
- {
- int a,b;
- scanf("%d%d",&a,&b);
- gt[a].push_back(b);
- gt[b].push_back(a);
- g[a][b]=g[b][a]=;
- }
- int f=;
- for(int j=;j<=n;j++)
- {
- if(gt[j].size()%) f=;
- }
- if(f||m%)
- {
- printf("0\n");
- continue;
- }
- dfs(,); // 0 代表 网络 1代表现实
- printf("%d\n",count);
- }
- }
,无脑不许想太多、、、、
2015多校训练第二场 hdu5305的更多相关文章
- CSU 多校训练第二场 J Pinemi Puzzles
传送门:http://acm.csu.edu.cn:20080/csuoj/problemset/problem?pid=2279 题意: 代码: #include <set> #incl ...
- 2015 多校赛 第二场 1006 (hdu 5305)
Problem Description There are n people and m pairs of friends. For every pair of friends, they can c ...
- 2015 多校赛 第二场 1004 hdu(5303)
Problem Description There are n apple trees planted along a cyclic road, which is L metres long. You ...
- 2015 多校赛 第二场 1002 (hdu 5301)
Description Your current task is to make a ground plan for a residential building located in HZXJHS. ...
- HDU 5305 Friends (搜索+剪枝) 2015多校联合第二场
開始对点搜索,直接写乱了.想了想对边搜索,尽管复杂度高.剪枝一下水过去了. 代码: #include<cstdio> #include<iostream> #include&l ...
- 18牛客多校训练第二场 J farm
题意:一个n×m的农田, 每个小格子都有一种作物, 现在喷t次农药,每次农药覆盖一个矩形, 该矩形里面与农药类型不同的植物都会死掉, 求最后植物的死亡数是多少. 题解:二维树状数组. 每次喷农药的时候 ...
- 2019HDU多校训练第二场 Longest Subarray
题意:给你一个串,问满足以下条件的子串中最长的是多长:对于每个数字,要么在这个子串没出现过,要么出现次数超过k次. 思路:对于这类问题,常常转化为数据结构的询问问题.我们考虑枚举右端点,对于当前右端点 ...
- 牛客网多校训练第二场D Kth Minimum Clique
链接:https://ac.nowcoder.com/acm/contest/882/D来源:牛客网 Given a vertex-weighted graph with N vertices, fi ...
- hdu 5288||2015多校联合第一场1001题
pid=5288">http://acm.hdu.edu.cn/showproblem.php?pid=5288 Problem Description OO has got a ar ...
随机推荐
- ruby YAML.load 和YAML.load_file区别
1. load( io ) Load a document from the current io stream. File.open( 'animals.yaml' ) { |yf| YAML::l ...
- Random类、ThreadLocalRandom类
Random和ThreadLocalRandom类均用于生成伪随机数. Random的构造函数: Random() 默认以系统当前时间为种子,相当于Random(System.currentT ...
- 一个例子说明Jsp三大重要内置对象的生命周期
此处Jsp的三大内置对象指:request,session以及application.他们共有的方法:setAttribute,getAttribute,方法名和方法作用都是相同的,但是作用范围不一样 ...
- swift基础-3
fallthrough 贯穿 case 可以不必写break 如果不需要知道区间内 每一项的值 可以使用 下划线 —— 来代替变量名 忽略 对该值的访问 for index in 1...5{ p ...
- 9、数值的整数次方------------>剑指offer系列
数值的整数次方 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 思路 这道题逻辑上很简单,但很容易出错 关键是要考虑全面,考虑到所有情况 ...
- 分享eclipse自动生成java注释方法
设置方法介绍: eclipse中:Windows->Preferences->Java->Code Style->Code Template->Comments,然后对应 ...
- 排序算法C语言实现
大学有一门课程叫做数据结构,严蔚敏的课本,其中详细介绍了集中经典的排序算法,学习复习反复几次,但是直到现在仍然只记得名字了,所以想记录下来,随时复习直至牢记于心.经常面试的朋友知道,排序算法在面试中出 ...
- jsp四大作用域之page
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding= ...
- (转)在SQL Server 2016,Visual Studio 2017环境下,连接数据库屡屡失败,在connectionString上出的问题
适用情景: 1,ServerVersion出了问题,“SqlCnt.ServerVersion”引发了类型“System.InvalidOperationException”的异常 2,在String ...
- 跑yscacaca/HHAR-Data-Process出现的问题
直接按照说明跑: python dataAli-sameUserDevice.py python pairDataFile.py python sep_HHAR_data.py 但在sep_HHAR_ ...