题目大意

一个有向图无自环图,找到一个点集S满足:
点集内任意两个不同的点x和y,满足d(x,y)>=2。
对于任意一个不在点集内的点y,存在一个点集内的点x,满足d(x,y)<=2。

构造

对于任意图都存在解,构造性解法可以证明这点。
找到任意一点w,将w以及w的出边指向的点都删去,对剩余的图找到一个解S‘’。
如果存在一个u->w,且u在S’内,我们直接令S=S’,显然正确。
否则我们令S=S’ or {w},显然也正确。

#include<cstdio>
#include<algorithm>
#define fo(i,a,b) for(i=a;i<=b;i++)
using namespace std;
const int maxn=1000000+10;
int h[maxn],go[maxn*2],nxt[maxn*2];
bool bz[maxn],pd[maxn];
int i,j,k,l,t,n,m,now,tot;
int read(){int x=0,f=1;char ch=getchar();while (ch<'0'||ch>'9'){if (ch=='-') f=-1;ch=getchar();}while (ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return x*f;
}
void add(int x,int y){go[++tot]=y;nxt[tot]=h[x];h[x]=tot;
}
void solve(){while (now<=n&&bz[now]) now++;if (now>n) return;int x=now;bz[x]=1;int t=h[x];while (t){if (t%2) bz[go[t]]=1;t=nxt[t];}solve();t=h[x];while (t){if (t%2==0) pd[x]|=pd[go[t]];t=nxt[t];}pd[x]^=1;
}
int main(){n=read();m=read();fo(i,1,m){j=read();k=read();add(j,k);add(k,j);}now=1;solve();t=0;fo(i,1,n) t+=pd[i];printf("%d\n",t);fo(i,1,n)if (pd[i]) printf("%d ",i);
}

[CF1019C]Sergey's problem相关推荐

  1. 【Cf #503 C】Sergey's problem(有趣的构造)

    感觉这种构造题好妙啊,可我就是想不到诶. 给出一张无自环的有向图,回答一个独立集,使得图中任意一点都可以被独立集中的某一点两步之内走到. 具体构造方案如下: 下标从小到大枚举点,如果该点没有任何标记, ...

  2. Google的技术剖析:创始人Sergey Brin 和 Lawrence Page的研究论文 (转)

    Google的技术剖析:创始人Sergey Brin 和 Lawrence Page的研究论文 (转)[@more@] The Anatomy of a Large-Scale Hypertextua ...

  3. E. Sergey and Subway(思维 + dp)

    Problem - E - Codeforces Sergey Semyonovich 是 N 市县的市长,他一直在思考如何进一步改善 Nkers 的生活.不幸的是,几乎所有可以做的事情都已经完成了, ...

  4. linux下yum错误:[Errno 14] problem making ssl connection Trying other mirror.

    所有的base 都要取消注释 mirrorlist 加上注释 另外所有的enable都要设为零 目录 今天是要yum命令安装EPEL仓库后 yum install epel-release 突然发现y ...

  5. A + B Problem

    1001: A + B Problem Description 计算 A + B. Input 多组测试数据,每组测试数据占一行,包括2个整数. Output 在一行中输出结果. Sample Inp ...

  6. Error:(49, 1) A problem occurred evaluating project ':guideview'. Could not read script 'https://r

    出现问题如下: Error:(49, 1) A problem occurred evaluating project ':guideview'. > Could not read script ...

  7. #418 Div2 Problem B An express train to reveries (构造 || 全排列序列特性)

    题目链接:http://codeforces.com/contest/814/problem/B 题意 : 有一个给出两个含有 n 个数的序列 a 和 b, 这两个序列和(1~n)的其中一个全排列序列 ...

  8. ADPRL - 近似动态规划和强化学习 - Note 3 - Stochastic Infinite Horizon Problem

    Stochastic Infinite Horizon Problem 3.Stochastic Infinite Horizon Problem 定义3.1 无限范围的马尔可夫决策过程 (Marko ...

  9. ADPRL - 近似动态规划和强化学习 - Note 2 - Stochastic Finite Horizon Problem

    2. Stochastic Finite Horizon Problem 在这一节中主要介绍了随机DP算法来解决不确定性下的有限地范围问题,如Denition 1.4所述,它被表述为一个组合优化问题. ...

最新文章

  1. 通过python+ftps远程备份企业数据
  2. 「后端小伙伴来学前端了」Vuex原理图分析及结合生活案例让大家快速理解
  3. 类加载器的概述和分类
  4. Python json模块 - Python零基础入门教程
  5. 深圳惊现“马云网络有限公司” 网友:你好 我是马云公司CEO
  6. 华为手机设置页面黑色_华为手机设置里面的这些功能你都知道吗?
  7. 编译动态库时报错relocation R_X86_64_32 against `.bss' can not be used when making a shared object; recompile
  8. 性能测试 - 响应 vs 延迟 vs 吞吐量 vs 负载 vs 扩展性 vs 压力 vs 健壮性
  9. 工程上为什么常用3dB带宽?而不是1dB或者2dB
  10. 宝塔面板防火墙安装和使用教程详解
  11. 1个英文字母、1个汉字、标点符号各占几个字节
  12. 【OpenGL】用GLFW和glad创建窗口
  13. BUUCTF misc 专题(22)隐藏的钥匙
  14. BeautyGAN图片的高精度美颜
  15. matlab 分类学习工具箱 Classification Learner
  16. Cocos Creator模拟砸金蛋3d旋转效果 | 附代码
  17. svn查找历史版本_svn历史版本对比以及还原到历史版本
  18. 【服务器】什么是服务器虚拟化
  19. nginx php .htaccess,Linux下nginx支持.htaccess文件实现伪静态的方法
  20. 设计技术实现方案时,需要考虑的一些问题

热门文章

  1. 超级采样 Supersampling 方式汇总
  2. android 九宫格解锁源码,Android 自己动手实现滑动九宫格解锁
  3. Kotlin 协程Flow、StateFlow、ShareFlow
  4. 交流变频电源如何进行断路器测试的?
  5. 10-30 H5第一次课 品牌墙
  6. 实例9、stc8a蓝牙模块HC05或者HC06模块,控制小车。利用定时器1产生通信的波特率9600
  7. 【正点原子STM32连载】第五十四章 手写识别实验 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1
  8. 脑影像分析工具保姆级安装教程——VMware Workstation16.1.2中安装FSL6.0.3/FSL6.0.4、MRtrix3、MRIcron并修复fsleyes not found
  9. 人脸识别有漏洞!测试的19款国产手机全部被破解
  10. NYOJ 451 光棍节的快乐(错排公式+排列组合)