题目描述

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.

输入输出样例

输入 #1
7 8
1 2
3 4
5 4
6 4
7 4
5 6
5 7
6 7
输出 #1
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的更多相关文章

  1. 洛谷 P3307: bzoj 3202: [SDOI2013] 项链

    题目传送门:洛谷P3307.这题在bzoj上是权限题. 题意简述: 这题分为两个部分: ① 有一些珠子,每个珠子可以看成一个无序三元组.三元组要满足三个数都在$1$到$m$之间,并且三个数互质,两个珠 ...

  2. 洛谷 4106 / bzoj 3614 [HEOI2014]逻辑翻译——思路+类似FWT

    题目:https://www.luogu.org/problemnew/show/P4106 https://www.lydsy.com/JudgeOnline/problem.php?id=3614 ...

  3. 洛谷 P3332 BZOJ 3110 [ZJOI2013]K大数查询

    题目链接 洛谷 bzoj 题解 整体二分 Code #include<bits/stdc++.h> #define LL long long #define RG register usi ...

  4. 洛谷 P2486 BZOJ 2243 [SDOI2011]染色

    题目描述 给定一棵有n个节点的无根树和m个操作,操作有2类: 1.将节点a到节点b路径上所有点都染成颜色c: 2.询问节点a到节点b路径上的颜色段数量(连续相同颜色被认为是同一段),如“112221” ...

  5. 洛谷 P2827 BZOJ 4721 UOJ #264 蚯蚓

    题目描述 本题中,我们将用符号表示对c向下取整,例如:. 蛐蛐国最近蚯蚓成灾了!隔壁跳蚤国的跳蚤也拿蚯蚓们没办法,蛐蛐国王只好去请神刀手来帮他们消灭蚯蚓. 蛐蛐国里现在共有n只蚯蚓(n为正整数).每只 ...

  6. 洛谷 P2155 BZOJ 2186 codevs 2301 [SDOI2008]沙拉公主的困惑

    题目描述 大富翁国因为通货膨胀,以及假钞泛滥,政府决定推出一项新的政策:现有钞票编号范围为1到N的阶乘,但是,政府只发行编号与M!互质的钞票.房地产第一大户沙拉公主决定预测一下大富翁国现在所有真钞票的 ...

  7. 洛谷 P2046 BZOJ 2007 海拔(NOI2010)

    题目描述 YT市是一个规划良好的城市,城市被东西向和南北向的主干道划分为n×n个区域.简单起见,可以将YT市看作 一个正方形,每一个区域也可看作一个正方形.从而,YT城市中包括(n+1)×(n+1)个 ...

  8. 洛谷 P1903 BZOJ 2120 清橙 A1274【模板】分块/带修改莫队(数颜色)(周奕超)

    试题来源 2011中国国家集训队命题答辩 题目描述 墨墨购买了一套N支彩色画笔(其中有些颜色可能相同),摆成一排,你需要回答墨墨的提问.墨墨会像你发布如下指令: 1. Q L R代表询问你从第L支画笔 ...

  9. 洛谷 P2709 BZOJ 3781 小B的询问

    题目描述 小B有一个序列,包含N个1~K之间的整数.他一共有M个询问,每个询问给定一个区间[L..R],求$\sum_1^Kc_i^2$的值,其中$c_i$表示数字i在[L..R]中的重复次数.小B请 ...

随机推荐

  1. 【HANA系列】SAP HANA Studio使用insufficient privilege 问题

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA Studio使 ...

  2. spark 怎么去连接 ElasticSearch

    https://stackoverflow.com/questions/52659109/cannot-read-from-elasticsearch-using-pyspark https://st ...

  3. Chapter03 第四节 c++的算术运算符

    c++算术运算符 3.4.1 运算符的优先级和结合性 四则运算参考四则运算优先级,注意括号. 3.4.2 除法的默认类型转换和精度问题 /* * @Description: 除法 * @Author: ...

  4. 9.shodan搜索引擎----Metasploit Web GUI----取证工具箱----sAINT间谍软件

    shodan搜索引擎 物联网搜索引擎 访问路由器,服务器,网络摄像头,安装CLI banner抓取,端口扫描 www.shodan.io 需要注册账户,支持google账户 搜索 webcams 网络 ...

  5. css文件引用

    #i1l{ background-color: chartreuse; height: 40px; } #i2l{ background-color: olivedrab; height: 40px; ...

  6. 安装OpenStack计算服务(nova)

    1. 配置数据库 数据库安装在控制节(controller)点上 $ mysql -u root -p 2.创建 glance 数据库 CREATE DATABASE nova; GRANT ALL ...

  7. CF和OF的区别

    进位标志CF和溢出标志OF的区别: 有符号数和无符号数只是认为的进行区分,计算机从来不区分有符号数和无符号数.对于运算的数来说,只要符合进位的情况,CF就置1.只要符合溢出的情况,OF就置1.但是后续 ...

  8. tensorflow学习笔记二----------变量

    tensorflow里面的变量表示,需要使用特定的语法进行.如果想构造一个行(列)向量,需要调用Variable函数进行.对两个变量进行操作,也要调用相应的函数. import tensorflow ...

  9. IntelliJ IDEA中创建Web聚合项目(Maven多模块项目)(转载)

    创建parent项目 1.打开IDEA,注意这里不要勾选模板,用模板创建过maven项目的小伙伴都知道模板创建项目非常慢,所以这里不要选模板,需要的文件夹我们后面自己来创建就可以了.所以这个页面直接点 ...

  10. alex说:一切皆bytes

    一.ASCII ASCII(American Standard Code for Information Interchange),是一种单字节的编码.计算机世界里一开始只有英文,而单字节可以表示25 ...