【hdu5285】wyh2000 and pupil
今天下午的二分图染色给我开启新世界的大门啊2333333
这个题要比刚才的关押罪犯简单,只需要染一遍色就能求出答案
#include<iostream> #include<cstring> #include<cstdio> #include<vector> #include<queue> using namespace std; int t,n,m,col[100005],x,y,ans; vector<int>mmp[100005]; queue<int>qwq; bool flag; inline void bfs(int x) {while(!qwq.empty())qwq.pop();qwq.push(x),col[x]=1;flag=0;//col[i]1为白,2为黑 int whi=1,bla=0;//计算有多少个黑白点 while(!qwq.empty()){int qaq=qwq.front();for(int i=0;i<mmp[qaq].size();i++){int to=mmp[qaq][i];if(col[to])//如果发现这个点之前到过 {if(col[to]==col[qaq])//如果这个点和队首一样 {flag=1;return;//答案不可行 }}else{col[to]=3-col[qaq];if(col[to]==1)whi++;elsebla++;qwq.push(to);}}qwq.pop();}ans+=max(whi,bla);//ans取黑白的最大值,因为假如黑的比白的多,我们把开始变为黑的就能得到白的比黑的多。黑白可以互相转化 } int main() {scanf("%d",&t);while(t--){scanf("%d%d",&n,&m);flag=0,ans=0;for(int i=1;i<=n;i++)col[i]=0,mmp[i].clear();if(n==0)//连人都没有就别管了23333 {printf("Poor wyh\n");continue;}for(int i=1;i<=m;i++)scanf("%d%d",&x,&y),mmp[x].push_back(y),mmp[y].push_back(x);for(int i=1;i<=n;i++)//如果发现这个点没有被跑过,就进行bfs if(!col[i]){bfs(i);if(flag)//如果发现答案不可行直接退出 break;}if(flag) printf("Poor wyh\n");else{if(m==0){if(ans==1)//如果就一个人,无法满足两个集合 都有人的情况 printf("Poor wyh\n");else//没有限制条件的情况下肯定能够分到一遍只剩一个人 printf("%d %d\n",ans-1,1);}else//不为零肯定能分成ans n-ans printf("%d %d\n",ans,n-ans);}} }
转载于:https://www.cnblogs.com/Loi-dfkdsmbd/articles/7701144.html
【hdu5285】wyh2000 and pupil相关推荐
- 【原创】开源Math.NET基础数学类库使用(05)C#解析Delimited Formats数据格式
本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新 开源Math.NET基础数学类库使用总目录:[目录]开源Math.NET基础数学类库使用总目录 前言 ...
- 【Python】python基础编程回顾(3)
PYTHON编程基础回顾 面向对象基础-中 面向对象具有三大特性--继承.多态与封装: 在本部分将会讲到三大特性中的两个--继承与多态 析构方法 概述:当一个对象被删除或者被销毁时,python解释器 ...
- 【前端】JS复习、巩固
参考:https://www.jianshu.com/p/b61a680d5c14 一.行为层(JavaScript) JavaScript 一门弱类型脚本语言,其源代码在发往客户端运行之前不需经过编 ...
- 【CentOS】利用Kubeadm部署Kubernetes (K8s)
[CentOS]利用Kubeadm部署Kubernetes (K8s)[阅读时间:约10分钟] 一.概述 二.系统环境&项目介绍 1.系统环境 2.项目的任务要求 三.具体实验流程 1 系统准 ...
- 【Spring】框架简介
[Spring]框架简介 Spring是什么 Spring是分层的Java SE/EE应用full-stack轻量级开源框架,以IOC(Inverse Of Control:反转控制)和AOP(Asp ...
- 【C#】类——里式转换
类是由面对对象程序设计中产生的,在面向结构的程序设计例如C语言中是没有类这个概念的!C语言中有传值调用和传址调用的两种方式!在c语言中,主方法调用方法,通过传递参数等完成一些操作,其中比较常用的的数据 ...
- 【C#】Out与ref是干什么的?
关于return: 1.最后没有写 return 语句的话,表示程序正常退出 2.不需要返回值时,存在return的作用 例子 void main() {return; //return退出该程序的作 ...
- 【软件工程】RUP与软件开发5大模型
软件开发的5大模型 1.瀑布模型:按照人的思维一步一步的开发下去,如果需求分析得当,每个阶段顺利,结果还不错! 2.快速原型模型:后来人们发现,自己不可能一下子就把所有的需求搞清楚,总是在开发的过程中 ...
- 【VB】学生信息管理系统5——数据库代码
这次学生信息管理系统在代码的理解过程中遇到了一些问题.总结如下: 1. sql server的安装过程各个步骤的意思.在安装SQL Server的时候按照网上的步骤,我觉得这个需要学完整个数据库再返回 ...
最新文章
- 用jdk在cmd下运行编译java程序
- 权限管理(shiro框架)
- laravel 图片流_laravel实现上传图片的两种方式小结
- 海量数据处理-Trie树
- CG CTF WEB bypass again
- 进程编译连接动态库,需要将动态库改为lib***.so
- 在Hibernate中启用实体和查询缓存
- matlab如何找出最小的数据,读取数据并找出全部数据的最大值和最小值
- 如何在django项目中使用django-ckeditor
- HighCharts控制不显示“上下文菜单”
- 椭圆基本概念、定理及性质
- 什么叫嵌入式开发 嵌入式开发的要求
- keras中的K.gradients()函数
- 首席新媒体运营商学院创始人黎想:给新媒体运营的7点建议
- 小米应用开发者文档(标注需要注意的地方)
- 【探花交友】用户登录总结
- OLED TFT屏幕相关
- Kotlin contract 用法及原理
- woff格式字体怎么打开和编辑?
- abb机器人离线编程软件解密_一文看懂最新机器人离线编程软件【详细】