算法笔记

挑战程序设计p98

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define ls rt<<1,l,m
#define rs rt<<1|1,m+1,r
const int INF=0x3f3f3f3f;
const int N=1e5+5;
vector<int>g[N];
int color[N]={0};bool dfs(int u, int c)
{color[u]=c;for(int i=0;i<g[u].size();i++){if(color[g[u][i]]==c)return false;if(color[g[u][i]]==0&&!dfs(g[u][i],-c))return false;}return true;
}int main()
{ios::sync_with_stdio(false);cin.tie(0);int n;cin>>n;for(int i=0;i<n;i++){int t;cin>>t;while(t--){int a;cin>>a;g[i].push_back(a);}}for(int i=0;i<n;i++){if(color[i]==0){if(!dfs(0,1)){cout<<"NO"<<endl;return 0;}}}cout<<"YES"<<endl;return 0;
}

例题1:hiho1121 : 二分图一•二分图判定

代码:

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define ls rt<<1,l,m
#define rs rt<<1|1,m+1,r
const int INF=0x3f3f3f3f;
const int N=1e5+5;
vector<int>g[N];
int color[N]={0};bool dfs(int u, int c)
{color[u]=c;for(int i=0;i<g[u].size();i++){if(color[g[u][i]]==c)return false;if(color[g[u][i]]==0&&!dfs(g[u][i],-c))return false;}return true;
}int main()
{ios::sync_with_stdio(false);cin.tie(0);int t,n,m,u,v;cin>>t;while(t--){cin>>n>>m;for(int i=1;i<=n;i++)g[i].clear();memset(color,0,sizeof(color));for(int i=0;i<m;i++){cin>>u>>v;g[u].push_back(v);g[v].push_back(u); }bool flag=true;for(int i=1;i<=n;i++){if(color[i]==0){if(!dfs(i,1)){flag=false;}}}if(flag)cout<<"Correct"<<endl;else cout<<"Wrong"<<endl;}return 0;
}

View Code

例题2:HDU 3478 Catch

代码:

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define pb push_back
#define mem(a,b) memset(a,b,sizeof(a))const int N=1e5+5;
vector<int>g[N];
//bool vis[N]={false};
int color[N]={0} ;
/*void dfs(int o,int u)//联通性判定
{vis[u]=true;for(int &v:g[u])if(v!=o&&!vis[v])dfs(u,v);
}*/bool DFS(int u,int c)//二分图判定
{color[u]=c;for(int &v:g[u]){if(color[v]==c)return false;if(color[v]==0&&!DFS(v,-c))return false;}return true;
} int main()
{ios::sync_with_stdio(false);cin.tie(0);int t,n,m,s,u,v,cse=1;cin>>t;while(t--){cin>>n>>m>>s;for(int i=0;i<n;i++)g[i].clear();for(int i=0;i<m;i++)cin>>u>>v,g[u].pb(v),g[v].pb(u);cout<<"Case "<<cse++<<": ";//mem(vis,false);mem(color,0);//dfs(0,0);    bool flag=true;//for(int i=0;i<n;i++)if(!vis[i])flag=false;if(DFS(0,1))flag=false;if(flag)cout<<"YES"<<endl;else cout<<"NO"<<endl;     }return 0;
}

View Code

转载于:https://www.cnblogs.com/widsom/p/7250192.html

算法笔记--二分图判定相关推荐

  1. 【算法笔记】二分图最大权匹配 - KM算法(dfs版O(n4) + bfs版O(n3))

    整理的算法模板合集: ACM模板 匈牙利算法又称为 KM 算法,可以在 O(n3)O(n^3)O(n3) 时间内求出二分图的 最大权完美匹配 . 考虑到二分图中两个集合中的点并不总是相同,为了能应用 ...

  2. 算法笔记_137:二分图的最大匹配(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 何为二分图的最大匹配问题? 引用自百度百科: 首先得说明一下何为匹配: 给定一个二分图G,在G的一个子图M中,M的边集{E}中的任意两条边都不依附于 ...

  3. c语言最小费用流_策略算法工程师之路-图优化算法(一)(二分图amp;最小费用最大流)...

    目录 1.图的基本定义 2.双边匹配问题 2.1 二分图基本概念 2.2 二分图最大匹配求解 2.3 二分图最优匹配求解 2.4 二分图最优匹配建模实例 2.4.1 二分图最优匹配在师生匹配中的应用 ...

  4. POJ2942 Knights of the Round Table 点双连通分量 二分图判定

    题目大意 有N个骑士,给出某些骑士之间的仇恨关系,每次开会时会选一些骑士开,骑士们会围坐在一个圆桌旁.一次会议能够顺利举行,要满足两个条件:1.任意相互憎恨的两个骑士不能相邻.2.开会人数为大于2的奇 ...

  5. python决策树 value_机器学习 | 算法笔记(四)- 决策树算法以及代码实现

    概述 上一篇讲述了<机器学习 | 算法笔记(三)- 支持向量机算法以及代码实现>,本篇讲述机器学习算法决策树,内容包括模型介绍及代码实现. 决策树 决策树(Decision Tree)在机 ...

  6. 《算法笔记》学习笔记(1)

    <算法笔记>学习笔记(1) 2021/4/7号 晚上21:36开始学习 第二章 c++/c快速入门 有的时候不要在一个程序中同时使用cout 和 printf 有的时候会出现问题. 头文件 ...

  7. 数据结构与算法笔记(青岛大学王卓老师视频)

    写在前面的话: 因为在学习数据结构之前,学习过一年的算法,所以有一些基础,一些我觉得 没必要的代码或知识就没写上,记得多是一些知识点,写的可能对于别人来说 很难接受,望谅解.我学习算法是在Acwing ...

  8. 算法笔记——数学相关

    算法笔记--数学相关 高精度 乘法逆元 排列组合 二项式定理 质数的判定和应用 约数 拓展欧几里得 大步小步算法(BSGS) 拓展大步小步算法 快速乘和快速幂 矩阵相关 欧拉函数 欧拉定理及费马小定理 ...

  9. 左程云算法笔记(四)哈希表和有序表的使用、链表

    左程云算法笔记(四) 哈希表的使用 有序表的使用 链表 单链表反转 (LC206) 双向链表反转 打印两个有序链表的公共部分 合并两个有序链表(LC21) 判断一个链表是否为回文结构 (LC234) ...

最新文章

  1. 常见的几个js笔试题
  2. .net将数据写入Excel指定单元格
  3. new char[x]和new char(x)的差别
  4. python开发的优秀界面-八款常用的 Python GUI 开发框架推荐
  5. NSIS中判断.net framework 是否安装
  6. Fail at Scale
  7. ubuntu12.10下arm-linux-gcc交叉编译环境的搭建
  8. 公布一个软件,轻新视频录播程序,H264/AAC录制视音频,保存FLV,支持RTMP直播...
  9. [Coding Style] CSS coding style
  10. idea 一键部署 cloudtoolkit
  11. linux下php-5.4.8.tar.gz编译安装全攻略
  12. python网络爬虫系列教程——python中requests库应用全解
  13. GoldWave的消音、淡入淡出、改变音乐速率
  14. 刘强东又给老家的乡亲们送生鲜年货了!东哥同款了解一下?
  15. 极客大学架构师训练营 大数据 三驾马车 GFS、MapReduce、BigTable,Hadoop HDFS 第23课 听课总结
  16. excel计算机二级考试试题,计算机二级考试Excel操作考试题.doc
  17. 我的第一届acm大赛
  18. 《中国通史》学习记录
  19. 语法长难句——并列句的练习
  20. Java下载文件时文件名中的中文变成下划线,其他正常

热门文章

  1. Node.js「二」—— fs 模块 / async 与 await
  2. 机器学习算法(6)——随机森林
  3. SetTimeout(延迟计时器)
  4. 7-2 输出约数 (9 分)
  5. 7-273 插入排序还是归并排序 (25 分)
  6. freebsd运行php,FreeBSD学习笔记16-FreeBSD下安装PHP
  7. 栈的顺序存储结构、链式存储架构及其实现
  8. 计算机应用基础发帖本科,《计算机应用基础》(本)教学大纲.doc
  9. 广州计算机专业王健,王健 - 教师简历 CV- 武汉大学计算机学院
  10. 初识c语言教程,第1课C语言教程一: 初识C程序.doc