题目大意

一个有向图无自环图,找到一个点集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. C++中标准模板库std::pair的实现
  2. Redis在Windows上编译
  3. LeetCode 第 28 场双周赛(505/2144,前23.6%)
  4. raspberry中配置机器学习的环境
  5. C++工作笔记-作用域( :: )的另一种玩法
  6. JAVA利用google的zxing快速生成QRCode
  7. 解决CodeBlocks中文不显示的问题
  8. SDUT 2142 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
  9. 桃李春风一杯酒,江湖夜雨十年灯 - 老兵夜话DPDK
  10. 华为m6平板电脑Linux,华为平板M6 10.8英寸版使用体验及全面评测
  11. vue将页面导出pdf,vue导出pdf
  12. 详细讲解黑客常用的远程控制木马
  13. GG 。B的搜索技巧?
  14. 国外素材网站打不开?还想要同品质图片?
  15. MLP-Mixer简介和一些想法
  16. LCD液晶屏的通讯模式
  17. vue+element实现天翼云oos上传文件
  18. csgo举报机器人怎么安排_求一个CSGO的举报和点赞用的机器人
  19. PHP 蒙太奇马赛克拼图,AndreaMosaic制作一幅马赛克拼图
  20. linux服务器忘记密码操作

热门文章

  1. TFT-LCD显示技术类型详述
  2. GIL 已经被杀死了么?
  3. 新版jdk无jre解决方案
  4. vb调用mysql 输入参数,VB如何利用SQL存储过程加入新记录(CreateParameter方法追加参数方法调用比较具体的例子)...
  5. 【JavaScript权威指南(第七版)】之阅读学习总结
  6. table表格直接导出Excel文件
  7. Iterator使用
  8. 【隔空投送】2023新品,加速科技ST2500E重磅来袭
  9. chatgpt赋能python:Python手机密码解锁-打开手机的一条捷径
  10. 【Java设计模式 规范与重构】 一 重构的目的、内容、时机、方法