洛谷 P3496 BZOJ 2079 [POI2010]GIL-Guilds
题目描述
King Byteasar faces a serious matter.
Two competing trade organisations, The Tailors Guild and The Sewers Guild asked, at the same time, for permissions to open their offices in each town of the kingdom.
There are towns in Byteotia.
Some of them are connected with bidirectional roads.
Each of the guilds postulate that every town should:
have an office of the guild, or be directly connected to another town that does.
The king, however, suspects foul play. He fears that if there is just a single town holding the offices of both guilds, it could lead to a clothing cartel.
For this reason he asks your help.
给一张无向图,要求你用黑白灰给点染色,且满足对于任意一个黑点,至少有一个白点和他相邻;对于任意一个白点,至少有一个黑点与他相邻,对于任意一个灰点,至少同时有一个黑点和白点和灰点与他相邻,问能否成功
输入格式
Two integers, n(<=200000) and m(<=500000), are given in the first line of the standard input. These denote the number of towns and roads in Byteotia, respectively.
The towns are numbered from 1 to n.
Then the roads are given as follows: the input line no. i+1 describes the i-th road;
输出格式
Your program should print out one word in the first line of the standard output:
TAK (yes in Polish) - if the offices can be placed in towns according to these rules, or NIE (no in Polish) - in the opposite case.
If the answers is TAK, then the following nlines should give an exemplary placement of the offices. Thus the line no. i+1 should hold:
the letter K if there should be an office of The Tailors Guild in the town i, or the letter S if there should be an office of The Sewers Guild in the town i, or the letter N if there should be no office in the town i.
输入输出样例
7 8
1 2
3 4
5 4
6 4
7 4
5 6
5 7
6 7
TAK
K
S
K
S
K
K
N
说明/提示
题目spj贡献者@mengbierr
随想
昨天刚考完期末考。这学期真是日了狗了,几乎全程被拖着走,不总结、不预习、不复习,上课时间打瞌睡几乎没有听懂的东西,全是下来花更多时间自学,时间越来越不够用。感觉高数要挂科啊。算了,总结总结,反思一下,吸取教训,继续前进。(我多久没更博客了?多久没写代码了?可能我读的是个假计算机专业)。之后两周学术周听讲座,试着勾搭个教授,争取进实验室打杂吧;然后一周摸鱼(雾),制定一些长久一点的计划(一定要留有余地,机动性好一点),休息休息,调整作息,开始JB-ICPC集训。等到集训结束……然后就开学了啊
解题思路
百度了20分钟啥是 clothing cartel。
好吧,是找借口摸了20分钟鱼
题目没说灰色节点是不是必须的,那就不要灰色的了,灰色要求怪高的。然后BFS黑白染色(听说DFS会爆栈),搜索过程中遇到已经染过色的点,就跳过不管。对于每个连通块,看看染了多少个点,要是这个连通块只有1个点,那就不满足要求(没有相邻的点了),输出NIE然后退出。全部连通块都染完了,就输出TAK和每个点的颜色(K或S)。标签打了个二分图染色,其实是不是二分图无所谓了,搜索过程遇到颜色冲突了不用管,把那条边跳过,最后全部染完就成。
源代码
#include<queue>
#include<stdio.h> int n,m;
struct Edge{
int nxt,to;
}e[];
int head[],cnt=;
void add(int u,int v)
{
e[cnt]={head[u],v};
head[u]=cnt++;
}
bool vis[];
bool col[];//颜色
int bfs(int x)
{
std::queue<int> q;
q.push(x);
vis[x]=;
int num=;
col[x]=;
while(!q.empty())
{
int u=q.front();
q.pop();
for(int i=head[u];i;i=e[i].nxt)
{
int v=e[i].to;
if(vis[v]) continue;
vis[v]=;
col[v]=!col[u];
q.push(v);
num++;
}
}
return num;
} int main()
{
scanf("%d%d",&n,&m);
for(int i=,j,k;i<=m;i++)
{
scanf("%d%d",&j,&k);
add(j,k);
add(k,j);
}
for(int i=;i<=n;i++)
{
if(vis[i]) continue;
if(bfs(i)==)
{
puts("NIE");
return ;
}
}
puts("TAK");
for(int i=;i<=n;i++)
{
puts(col[i]?"K":"S");
}
return ;
}
洛谷 P3496 BZOJ 2079 [POI2010]GIL-Guilds的更多相关文章
- 洛谷 P3307: bzoj 3202: [SDOI2013] 项链
题目传送门:洛谷P3307.这题在bzoj上是权限题. 题意简述: 这题分为两个部分: ① 有一些珠子,每个珠子可以看成一个无序三元组.三元组要满足三个数都在$1$到$m$之间,并且三个数互质,两个珠 ...
- 洛谷 4106 / bzoj 3614 [HEOI2014]逻辑翻译——思路+类似FWT
题目:https://www.luogu.org/problemnew/show/P4106 https://www.lydsy.com/JudgeOnline/problem.php?id=3614 ...
- 洛谷 P3332 BZOJ 3110 [ZJOI2013]K大数查询
题目链接 洛谷 bzoj 题解 整体二分 Code #include<bits/stdc++.h> #define LL long long #define RG register usi ...
- 洛谷 P2486 BZOJ 2243 [SDOI2011]染色
题目描述 给定一棵有n个节点的无根树和m个操作,操作有2类: 1.将节点a到节点b路径上所有点都染成颜色c: 2.询问节点a到节点b路径上的颜色段数量(连续相同颜色被认为是同一段),如“112221” ...
- 洛谷 P2827 BZOJ 4721 UOJ #264 蚯蚓
题目描述 本题中,我们将用符号表示对c向下取整,例如:. 蛐蛐国最近蚯蚓成灾了!隔壁跳蚤国的跳蚤也拿蚯蚓们没办法,蛐蛐国王只好去请神刀手来帮他们消灭蚯蚓. 蛐蛐国里现在共有n只蚯蚓(n为正整数).每只 ...
- 洛谷 P2155 BZOJ 2186 codevs 2301 [SDOI2008]沙拉公主的困惑
题目描述 大富翁国因为通货膨胀,以及假钞泛滥,政府决定推出一项新的政策:现有钞票编号范围为1到N的阶乘,但是,政府只发行编号与M!互质的钞票.房地产第一大户沙拉公主决定预测一下大富翁国现在所有真钞票的 ...
- 洛谷 P2046 BZOJ 2007 海拔(NOI2010)
题目描述 YT市是一个规划良好的城市,城市被东西向和南北向的主干道划分为n×n个区域.简单起见,可以将YT市看作 一个正方形,每一个区域也可看作一个正方形.从而,YT城市中包括(n+1)×(n+1)个 ...
- 洛谷 P1903 BZOJ 2120 清橙 A1274【模板】分块/带修改莫队(数颜色)(周奕超)
试题来源 2011中国国家集训队命题答辩 题目描述 墨墨购买了一套N支彩色画笔(其中有些颜色可能相同),摆成一排,你需要回答墨墨的提问.墨墨会像你发布如下指令: 1. Q L R代表询问你从第L支画笔 ...
- 洛谷 P2709 BZOJ 3781 小B的询问
题目描述 小B有一个序列,包含N个1~K之间的整数.他一共有M个询问,每个询问给定一个区间[L..R],求$\sum_1^Kc_i^2$的值,其中$c_i$表示数字i在[L..R]中的重复次数.小B请 ...
随机推荐
- Spoj375 Qtree--树链剖分
Spoj375 Qtree给一棵共有 n(n · 10000) 个结点的树, 每条边都有一个权值, 要求维护一个数据结构, 支持如下操作: 1. 修改某条边的权值; 2. 询问某两个结点之间的唯一通路 ...
- 操作系统 - Linux操作系统 - Centos - Centos6.5 - 安装|命令|使用汇总
快捷键 打开终端 右键 —>open terminal 网络配置 配置文件修改 - ONBOOT=no 修改为 ONBOOT=yes 工具 - gcc 安装 yum -y install gcc ...
- ZABBIX_PROXy
ProxyMode=0 Server=172.19.30.50 ServerPort=10051 Hostname=172.17.26.102 ListenPort=10051 LogFile=/va ...
- bfs(同一最短路径)
http://oj.jxust.edu.cn/contest/Problem?id=1702&pid=7 题意:现在有两个相同大小的地图,左上角为起点,右下角问终点.问是否存在同一条最短路径. ...
- 洛谷 P1484 种树(优先队列,贪心,链表)
传送门 解题思路 第一眼的贪心策略:每次都选最大的. 但是——不正确! 因为选了第i个树,第i-1和i-1棵树就不能选了.所以,要有一个反悔操作. 选了第i个后,我们就把a[i]的值更新为a[l[i] ...
- Linux下libaio的一个简单例子
转载:http://www.cnblogs.com/aLittleBitCool/archive/2011/10/18/2216646.html 异步io,很好玩的一个东西,从接口来看,封装的比较厉害 ...
- C++编译器对属性的初始化检查远没有Java严格
C++编译器对属性的初始化检查远没有Java严格// Java编译通过:class yy { public static void main(String[] args) { int i; Syste ...
- Fusioncharts图表常用参数设置
1.1 <chart>参数设置: 图表和轴的标题* caption=”String” : 图表上方的标题* subCaption=”String” : 图表上方的副标题* xAxisNam ...
- sqlserver 创建 aspstate的方法
找到路径 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 不同版本找不同版本的路径 在命令行执行命令 aspnet_regsql.exe -ssadd -s ...
- oracle数据库中的游标
oracle中的游标,游标的概念与作用,游标的分类,游标的使用. 一,游标的概念与作用 摘自百度百科:游标(Cursor)是处理数据的一种方法,为了查看或者处理结果集中的数据,游标提供了在结果集中一次 ...