acdream 1056 (黑白染色)
题意:给你一些关系,每个关系是两只马的名字,表示这两个马不能在一个分组里,问你能否将这些马分成两组。
黑白染色,相邻的点染不同颜色。bfs搞即可,水题。
/*
* this code is made by wangzhili
* Problem: 1056
* Verdict: Accepted
* Submission Date: 2014-08-08 19:58:16
* Time: 24MS
* Memory: 1872KB
*/
#include<map>
#include<cmath>
#include<queue>
#include<cstdio>
#include<string>
#include<vector>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
map<string, int>mp;
int mat[222][222], vis[222], num;
bool bfs(){
queue<int>Q;
memset(vis, -1, sizeof vis);
Q.push(1), vis[1] = 0;
while(!Q.empty()){
int u = Q.front();
Q.pop();
for(int i = 1;i <= num;i ++){
if(mat[u][i] && vis[i] == -1){
vis[i] = vis[u] ^ 1;
Q.push(i);
}else if(vis[i] != -1 && mat[u][i]) {
if(vis[i] == vis[u]) return false;
}
}
}
return true;
}
int main(){
string str1, str2;
int t, n, CASE(0);
scanf("%d", &t);
while(t--){
int u, v;
memset(mat, 0, sizeof mat);
mp.clear(), num = 0;
scanf("%d", &n);
for(int i = 0;i < n;i ++){
cin >> str1 >> str2;
map<string, int>::iterator it = mp.find(str1);
if(it == mp.end()) mp.insert(pair<string, int>(str1, ++num)), u = num;
else u = it->second;
it = mp.find(str2);
if(it == mp.end()) mp.insert(pair<string, int>(str2, ++num)), v = num;
else v = it->second;
mat[u][v] = mat[v][u] = 1;
}
printf("Case #%d: ", ++CASE);
if(bfs()) printf("Yes\n");
else printf("No\n");
}
return 0;
}
acdream 1056 (黑白染色)的更多相关文章
- 【BZOJ-1976】能量魔方Cube 最小割 + 黑白染色
1976: [BeiJing2010组队]能量魔方 Cube Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 884 Solved: 307[Submi ...
- BZOJ-2756 奇怪的游戏 黑白染色+最大流+当前弧优化+二分判断+分类讨论
这个题的数据,太卡了,TLE了两晚上,各种调试优化,各种蛋疼. 2756: [SCOI2012]奇怪的游戏 Time Limit: 40 Sec Memory Limit: 128 MB Submit ...
- POJ 1466 Girls and Boys 黑白染色 + 二分匹配 (最大独立集) 好题
有n个人, 其中有男生和女生,接着有n行,分别给出了每一个人暗恋的对象(不止暗恋一个) 现在要从这n个人中找出一个最大集合,满足这个集合中的任意2个人,都没有暗恋这种关系. 输出集合的元素个数. 刚开 ...
- bzoj 2132 圈地计划(黑白染色,最小割)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2132 [题意] 给定n*m个区域,建工业区价值A,建商业区价值B,如果(i,j)有k个 ...
- 【AGC018F】Two Trees 构造 黑白染色
题目描述 有两棵有根树,顶点的编号都是\(1\)~\(n\). 你要给每个点一个权值\(a_i\),使得对于两棵树的所有顶点\(x\),满足\(|x\)的子树的权值和\(|=1\) \(n\leq 1 ...
- HDU1507 Uncle Tom's Inherited Land* 二分图匹配 匈牙利算法 黑白染色
原文链接http://www.cnblogs.com/zhouzhendong/p/8254062.html 题目传送门 - HDU1507 题意概括 有一个n*m的棋盘,有些点是废的. 现在让你用1 ...
- AGC 027D.Modulo Matrix(构造 黑白染色)
题目链接 \(Description\) 给定\(n\),要求构造一个\(n\times n\)的矩阵,矩阵内的元素两两不同,且任意相邻的两个元素\(x,y\),满足\(\max(x,y)\ \mat ...
- BZOJ.5120.[清华集训2017]无限之环(费用流zkw 黑白染色)
题目链接 LOJ 洛谷 容易想到最小费用最大流分配度数. 因为水管形态固定,每个点还是要拆成4个点,分别当前格子表示向上右下左方向. 然后能比较容易地得到每种状态向其它状态转移的费用(比如原向上的可以 ...
- BZOJ.2756.[SCOI2012]奇怪的游戏(二分 黑白染色 最大流ISAP)
题目链接 \(Description\) \(Solution\) 这种题当然要黑白染色.. 两种颜色的格子数可能相同,也可能差1.记\(n1/n2\)为黑/白格子数,\(s1/s2\)为黑/白格子权 ...
随机推荐
- 欧拉工程第65题:Convergents of e
题目链接 现在做这个题目真是千万只草泥马在心中路过 这个与上面一题差不多 这个题目是求e的第100个分数表达式中分子的各位数之和 What is most surprising is that the ...
- 解决Eclipse10配置Pydev不成功的问题
本人在线配置还在本地配置后 重启Eclipse,Windows-Preferences中并无Python选项,新建项目也无Python可选 这个尝试了好多种方法,重新安装Eclipse10,重新安装j ...
- 转:UGUI与NGUI的区别与优缺点
1. NGUI与UGUI的区别 1) uGUI的Canvas 有世界坐标和屏幕坐标 2) uGUI的Image可以使用material 3) UGUI通过Mask来裁剪,而NGUI通过Pa ...
- http报文在网络中是明文传输的,所以不安全。HTtp必然来临
HTTP数据在网络中裸奔 HTTP明文协议的缺陷,是导致数据泄露.数据篡改.流量劫持.钓鱼攻击等安全问题的重要原因.HTTP协议无法加密数据,所有通信数据都在网络中明文“裸奔”.通过网络的嗅探设备及一 ...
- mysql建表时拆分出常用字段和不常用字段
一对一 一张表的一条记录一定只能与另外一张表的一条记录进行对应,反之亦然. 学生表:姓名,性别,年龄,身高,体重,籍贯,家庭住址,紧急联系人 其中姓名.性别.年龄.身高,体重属于常用数据,但是籍贯.住 ...
- [Unity菜鸟] Final IK
由于本人英文较烂,边翻译用户手册边学习. 用户手册 IK Components Final IK 包含许多强大高速的IK组件 Aim AimIK solver是一个对CCD算法(cyclic co ...
- 2014-9-17二班----7 web project
package cn.rwkj.servlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServle ...
- maven项目:Invalid bound statement
在使用maven做mybatis项目时会遇到这个问题, org.apache.ibatis.binding.BindingException: Invalid bound statement (not ...
- openfire开发
openfire github地址:https://github.com/igniterealtime/Openfire 1.下载源代码:http://www.igniterealtime.org/d ...
- c# 使用 静态类+xml序列化 保存配置文件
namespace TVCorrectionDataProcess{ [XmlRoot(ElementName = "Config")] public class Co ...