P1418 选点问题(黑白染色)
P1418 选点问题
题目描述
给出n个点,m条边,每个点能控制与其相连的所有的边,要求选出一些点,使得这些点能控制所有的边,并且点数最少。同时,任意一条边不能被两个点控制
输入输出格式
输入格式:
第一行给出两个正整数n,m
第2~m+1行,描述m条无向边
每行给出x,y,表示一条无向边(x,y)
输出格式:
输出最少需要选择的点的个数,如果无解输出“Impossible”(不带引号)
输入输出样例
7 5
1 2
1 3
5 6
6 7
1 2
2
说明
【数据范围】
对于30%的数据1<=n<=100
对于100%的数据1<=n<=1000
m<=n^2
不保证图连通
【题目来源】
tinylic改编
黑白染色问题,与封锁阳光大学一样,代码都没改一改。
#include<cstdio>
#include<algorithm>
using namespace std; const int MAXN = ;
struct Edge{
int to,nxt;
}e[]; //双向边乘2
int col[MAXN],head[MAXN];
bool vis[MAXN],flag = true;
int n,m,cnt,ans,ans1,ans2; void add(int u,int v)
{
++cnt;
e[cnt].to = v;
e[cnt].nxt = head[u];
head[u] = cnt;
} void dfs(int u,int c)
{
vis[u] = true;
if (c==) col[u]=, ans2++;
else if (c==) col[u] = , ans1++;
for (int i=head[u]; i; i=e[i].nxt)
{
int v = e[i].to;
if (vis[v]) //不能写成if(vis[i]&&col[u]==col[v]),影响到else的执行
{
if (col[v]==col[u])
flag = false;
}
else dfs(v,col[u]);
}
}
int main()
{
scanf("%d%d",&n,&m);
for (int x,y,i=; i<=m; ++i)
{
scanf("%d%d",&x,&y);
add(x,y);
add(y,x);
}
for (int i=; i<=n; ++i)
if (!vis[i])
{
ans1 = ans2 = ;
dfs(i,);
if (flag) ans += min(ans1,ans2);
else break;
}
if (flag) printf("%d",ans);
else printf("Impossible");
return ;
}
P1418 选点问题(黑白染色)的更多相关文章
- 洛谷P1418 选点问题
P1418 选点问题 74通过 240提交 题目提供者tinylic 标签云端 难度普及+/提高 时空限制1s / 128MB 提交 讨论 题解 最新讨论更多讨论 非常重要!! 90分的点这里 题 ...
- 【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个人,都没有暗恋这种关系. 输出集合的元素个数. 刚开 ...
- acdream 1056 (黑白染色)
题意:给你一些关系,每个关系是两只马的名字,表示这两个马不能在一个分组里,问你能否将这些马分成两组. 黑白染色,相邻的点染不同颜色.bfs搞即可,水题. /* * this code is made ...
- 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 ...
随机推荐
- selenium profile remotedriver
使用 FirefoxProfile FirefoxProfilefp = new FirefoxProfile(); // set something on the profile... Desire ...
- Asp.Net实现伪静态(通过URLRewriter)
一.起因 最近一个项目要实现伪静态,之前没接触过,故一切从零开始,开始网上查资料,方法大概有三种,但是我都试了好几个,都失败了.望有建议的博友给点建议,这里我实现了一种方式,是通过微软URLRewri ...
- 【转载】SQL执行计划
要理解执行计划,怎么也得先理解,那各种各样的名词吧.鉴于自己还不是很了解.本文打算作为只写懂的,不懂的懂了才写. 在开头要先说明,第一次看执行计划要注意,SQL Server的执行计划是从右向左看的. ...
- 获取文件绝对路径:__FILE__与$_SERVER[SCRIPT_FILENAME'']的区别
1.获取路径 (1)__FILE__ 获取某文件在本地目录中的绝对路径,(也就是说,哪个文件执行这行代码,它就获取哪个文件的绝对路径) (2)$__SERVER['SCRIPT_FILENAME'] ...
- c# 语法 字符串内插
结果截屏 参考文章 https://www.cnblogs.com/csproj/p/Interpolated_Strings.html c# 6.0语法 https://www.cnblogs.co ...
- 重定向跳出父Frame
当session过期后可以用过滤器来设置重定向页面 代码如下: public class ActionFilter extends HttpServlet implements Filter {pri ...
- 阅读detection
关于detecion的几篇文章,感觉有必要系统学习一下,并记录一下了,最近看书比较多,文章看得少,赶紧看看吧. FPN:Feature Pyramid Networks for Object Dete ...
- C# grid控件用数据库分页后台怎么写?
C#grid控件使用数据库分页的写法如下: mySystem.GetDataa(gridName.PageIndex *gridName.PageSize + 1, (gridName.PageInd ...
- sudo 密码超时时间
Centos 没有默认超时时间,所以用一次sudo就需要输入密码. vi /etc/sudoers 添加下面的内容,2表示分钟数(看自己需求更改). Defaults timestamp_timeou ...
- java基础 序列化反序列化流 实现Serializable 接口 自动装载序列号到对象文本文件如修改不能反序列化对象文本,除非自定义long型常量 打印流
package com.swift.baseKnowledge; import java.io.File; import java.io.FileInputStream; import java.io ...