题意:1e6个人每人有一只猫 每个人认识自己的猫 现给出一些关系表示一个人认识某只猫

   要选出一些人和一些猫 使得每个人都不认识选出来的猫 且人+猫=n

题解:答案肯定是 一个人的集合和一个猫的集合

   那么对于某个人 他要么在这个答案集合中 要么不在 我们考虑第一个人

   先考虑这个人在答案集合中 如果这个人认识某只猫 那么拥有这只猫的主人显然也应该放在答案集合中

   所以不停把人放入队列进来 如果最后这个人的集合没有n个人 则是一种合法的方案

   然后考虑第一个人不在答案集合中 那么逆向思维等于我们选了第一个人的猫 如果某个人认识这只猫

   那么这个人的猫也应该放在猫的集合里 瞎搞搞就完了

#include <bits/stdc++.h>
using namespace std; int n, m, l, r;
vector<int> g[2][1000005];
int que[1000005];
int vis[1000005];
void solve(int typ) {
for(int i = 1; i <= n; i++) vis[i] = 0;
l = 1, r = 0;
que[++r] = 1; vis[1] = 1; while(l <= r) {
int u = que[l]; l++;
for(int i = 0; i < g[typ][u].size(); i++) {
int v = g[typ][u][i];
if(!vis[v]) {
vis[v] = 1;
que[++r] = v;
}
}
}
} int main() {
int T;
scanf("%d", &T);
while(T--) {
scanf("%d%d", &n, &m);
for(int i = 1; i <= n; i++) g[0][i].clear(), g[1][i].clear();
for(int i = 1; i <= m; i++) {
int x, y;
scanf("%d%d", &x, &y);
if(x == y) continue;
g[0][x].push_back(y);
g[1][y].push_back(x);
} solve(0);
if(r != n) {
puts("Yes");
printf("%d %d\n", r, n - r);
for(int i = 1; i <= r; i++) printf("%d ", que[i]);
puts("");
for(int i = 1; i <= n; i++) if(!vis[i]) printf("%d ", i);
puts("");
continue;
}
solve(1);
if(r != n) {
puts("Yes");
printf("%d %d\n", n - r, r);
for(int i = 1; i <= n; i++) if(!vis[i]) printf("%d ", i);
puts("");
for(int i = 1; i <= r; i++) printf("%d ", que[i]);
puts("");
continue;
}
puts("No");
}
return 0;
}

  

Codeforces1248F. Catowice City的更多相关文章

  1. Codeforces Round #594 (Div. 1) D. Catowice City 图论

    D. Catowice City In the Catowice city next weekend the cat contest will be held. However, the jury m ...

  2. 并不对劲的CF1239B&C&D Programming Task in the Train to Catowice City

    CF1239B The World Is Just a Programming Task 题目描述 定义一个括号序列s是优秀的,当且仅当它是以下几种情况的一种: 1.|s|=0 2.s='('+t+' ...

  3. 题解-CF1239D Catowice City

    CF1239D Catowice City 有 \(n\) 个人和 \(n\) 只猫.有 \(m\) 对人猫友谊,即第 \(u_i\) 个人认识第 \(v_i\) 只猫,保证第 \(i\) 个人和第 ...

  4. CF1248F Catowice City

    题目链接 problem 有\(n\)个人,每个人家有一只猫.每个人都认识一些猫(其中肯定包括自己家的猫).选出\(j\)个人和\(k\)只猫\((j,k\ge 1)\).使得\(j+k=n\)且选出 ...

  5. Codeforces 1239D. Catowice City

    传送门 如果选择 $i$ 当陪审团成员,那么 $i$ 认识的猫一定不能参加 又因为总人数和猫数要为 $n$ ,那么 $i$ 认识的猫 的主人也一定要当陪审团成员(不然总数不够) 所以可以考虑这样构图, ...

  6. 一句话CF

    目录 \(\bf {Round \ \#500 \ (Div. \ 1)}\) \(\bf {Round \ \#589 \ (Div. \ 2)}\) \(\bf {Avito \ Cool \ C ...

  7. Codeforces Round #594 (Div. 2)

    传送门 C. Ivan the Fool and the Probability Theory 题意: 给出一个\(n*m\)的方格,现在要给方格中的元素黑白染色,要求任一颜色最多有一个颜色相同的格子 ...

  8. 【CodeForces】CodeForcesRound594 Div1 解题报告

    点此进入比赛 \(A\):Ivan the Fool and the Probability Theory(点此看题面) 大致题意: 给一个\(n\times m\)的矩阵\(01\)染色,使得不存在 ...

  9. Codeforces Round #594 (Div. 1)

    Preface 这场CF真是细节多的爆炸,B,C,F都是大细节题,每道题都写了好久的说 CSP前的打的最后一场比赛了吧,瞬间凉意满满 希望CSP可以狗住冬令营啊(再狗不住真没了) A. Ivan th ...

随机推荐

  1. springboot项目打war包流程

    目前,前后端分离的架构已成主流,因此使用springboot构建应用是非常快速的,项目发布到服务器上的时候,只需要打成一个jar包,然后通过命令 : java -jar jar包名称即可启动服务了:但 ...

  2. Appium 介绍及环境安装

    Appium是一个可用于测试iOS. Android操作系统和Windows桌面平台原生应用,移动网页应用和混合应用的自动化测试框架. 原生应用(Native App):用 android.iOS或者 ...

  3. Netty与NIO

    初识Netty Netty是由JBoss提供的一个Java的开源框架,是GitHub上的独立项目. Netty是一个异步的,基于事件驱动的网络应用框架,用于快速开发高性能.高可靠的网络IO程序. Ne ...

  4. ubuntu环境下搭建Hadoop集群中必须需要注意的问题

    博主安装的hadoop是3.1.3这里是按照厦门大学那个博客安装的,在安装与启动过程中,费了不少事,特此记录一下问题. 安装的连接: 安装环境:http://dblab.xmu.edu.cn/blog ...

  5. 在MongoDB中执行查询与创建索引

    实验目的: (1)掌握MongoDB中数据查询的方法: (2)掌握MongoDB中索引及其创建: 实验内容: 一. MongoDB中数据查询的方法: (1)find函数的使用: (2)条件操作符: a ...

  6. Centos 7 杂章

    CentOS-7-x86_64-DVD-2003.iso 下载地址: http://mirrors.aliyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-DV ...

  7. 【Linux】rsync 守护进程的配置

    环境 centos7.2 1.首先查看是否安装rsync的相关包 rpm -qa | grep rsync rsync-3.1.2-4.el7.x86_64 如果没安装就yum install rsy ...

  8. 【EXP】比较大的dmp文件导入的时候可以将界面关掉

    有一个需求,将一个dmp文件导入到数据库中,但是这个crt的回话有timeout,3分钟,所以一到三分钟就掉线,导入就失败了,这让人很头疼,关闭界面,imp也就终止了 最后想到了几招,分享一下: 1. ...

  9. C#数组的 Length 和 Count()

    C#数组的 Length 和 Count() C# 数组中 Length 表示数组项的个数,是个属性.而 Count() 也是表示项的个数,是个方法,它的值和 Length 一样.但实际上严格地说, ...

  10. oracle动态采样导致数据库出现大量cursor pin s wait on x等待

    生产库中,突然出现了大量的cursor pin s wait on x等待,第一反应是数据库出现了硬解析,查看最近的DDL语句,没有发现DDL.那么有可能这个sql是第一次进入 在OLTP高并发下产生 ...