T176289 Misaka Network

题意

给定一个DAG,尽可能少的选出一些不相邻的控制节点,使得整个图被控制,每个控制节点可以控制它本身和所有它指向的点

思路

蒟蒻考场的时候一直在想一种情况,拓扑排序分层图,奇数层选择控制点,甚至考虑了奇数层是不是需要全选…实际上不需要分层,因为奇数层是肯定要全选的(偶数层都不选,没有点控制奇数层的点)

所以只需要按照拓扑序,从小到大枚举,如果没被控制,那么一定没人可以控制它了(此时它的入度为0),它就是一个新的控制点,此时把它的所有出边的点控制

这样选就是最小的答案了,考试的时候考虑复杂了,这是通过率第二的题目,下次一定要先想简单的贪心想法,其实也和没有注意到点不光要控制别人,一定要控制自己,如果没人控制自己,自己是必须要选自己这个性质有关

代码

#include<cstdio>
#include<iostream>
#include<cstring>
#include<string>
#include<algorithm>
#include<cmath>
#include<vector>
#include<queue>
#include<map>
#include<stack>
#include<set>
#define NDEBUG
#include <assert.h>
using namespace std;
typedef vector<int> vi;
typedef long long ll;
typedef unsigned long long ull;
typedef double db;
typedef unsigned int ui;inline 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 << 1) + (x << 3) + (ch ^ 48);ch = getchar();}return x * f;
}#define endl '\n'
#define rd read()
#define pb push_back
#define mst(a, b) memset((a), (b), sizeof(a));
#define inf 0x3f3f3f3f
#define linf 0x3f3f3f3f3f3f3f3f
#define ls (u << 1)
#define rs (u << 1 | 1)
#define mod ((int)1e9+7)
#define maxn (int)(1e5+5)int n, m, ans, in[maxn];
vector <int> e[maxn];
bool vis[maxn], ctr[maxn];queue <int> q;void inp() {cin >> n >> m;for(int i = 1; i <= m; ++i) {int u = rd, v = rd;++in[v];e[u].pb(v);}
}void topo() {for(int i = 1; i <= n; ++i) {if(!in[i]) {q.push(i);ctr[i] = true;vis[i] = true;++ans;}}while(!q.empty()) {int u = q.front();q.pop();for(unsigned int i = 0; i < e[u].size(); ++i) {int v = e[u][i];--in[v];if(ctr[u]) vis[v] = true;if(!in[v]) {if(!vis[v]) {ctr[v] = vis[v] = true, ++ans;// printf("u = %d, v = %d\n", u, v);}q.push(v);}}}printf("%d\n", ans);
}int main() {#ifndef ONLINE_JUDGEfreopen("D:\\Chrome Downloadings\\input.txt", "r", stdin);freopen("D:\\Chrome Downloadings\\output.txt", "w", stdout);
#endifinp();topo();return 0;
}

[洛谷多校第三场]T176289 Misaka Network[拓扑排序]相关推荐

  1. [洛谷多校第三场] T176282 Mana Eel‘s Problem [分段前缀积]

    T176282 Mana Eel's Problem 题意 给定数列an,xa_n,xan​,x,询问 ∏lr(μ(ai)+ai+x)(mod998244353)\prod\limits _l^r(\ ...

  2. 24dian(牛客多校第三场)

    24dian(牛客多校第三场) 题意: 给你n张牌,每张牌的大小为1 ~ 13,问这些牌与加减乘除任意组合(可以使用括号),且但所有的有效解在计算过程中都涉及到分数,即非整数,能否组成答案m,如果可以 ...

  3. 【洛谷新手村解题报告三 字符串/递归前】C++语言,一题多解,思路和WA反思

    [洛谷新手村解题报告三] 简单字符串 过程函数与递归 首先下一部分!字符串,这个前面两题新手跳过吧 简单字符串 第三题 统计单词数 [2/2] 给定一个单词,请你输出它在给定的文章中出现的次数和第一次 ...

  4. 2019.7.29 杭电多校第三场小结

    index > 杭电多校第三场 题号 标题 AC 做法 状态 6603 Azshara's deep sea (51/150)34.00% 6604 Blow up the city (213/ ...

  5. 牛客多校第三场 B【Classical String Problem】

    牛客多校第三场 B[Classical String Problem] 链接:https://ac.nowcoder.com/acm/contest/5668/B 来源:牛客网 题目描述 Given ...

  6. 2020牛客多校第三场[C Operation Love+基础计算几何 判断多边形顺逆时针]

    题目链接 题目大意:就是给你两个左右手的模型,下面给出这两只手通过平移变换之后坐标问你这只手是左手还是右手?[题目保证坐标是按照顺时针或者逆时针给出的] 解题思路:首先我们先观察一下这只右手:假如数据 ...

  7. exgcd ---- 2020牛客多校第三场:[Fraction Construction Problem:exgcd+思维题]

    题目链接 题目大意:就是给你两个数a,ba,ba,b叫你求满足下面三个条件的c,d,e,fc,d,e,fc,d,e,f 1.cd−ef=ab1.{c\over d}-{e\over f}={a\ove ...

  8. 洛谷P2286 [HNOI2004]宠物收养场

    题目描述 凡凡开了一间宠物收养场.收养场提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物. 每个领养者都希望领养到自己满意的宠物,凡凡根据领养者的要求通过他自己发明的一个特殊的公式,得出该领 ...

  9. 2019湖南多校第三场

    解题过程 开场lfw过A,然后byf突然想到E的构造方法,WA了一发开始查错,shl中途看G,说"这不是bzoj原题吗?"拿到一血带歪榜,然后byf该出E拿到一血又带歪榜...sh ...

最新文章

  1. 分布式锁原理及实现方式
  2. 应用生命周期终极 DevOps 工具包
  3. JAVA实现onvif的ptz控制_使用Onvif协议进行设备PTZ云台控制
  4. Java并发之从基础到框架
  5. MC-GAN:Multi-Content GAN for Few-Shot Font Style Transfer
  6. [postgresql]postgresql的聚合函数sql实例
  7. java session 例子_JavaWeb——HttpSession常用方法示例
  8. ftp客户端flashfxp破解教程
  9. OC Gen X:一键制作黑苹果OpenCore EFI文件
  10. Linux无头浏览器的自动化测试实现
  11. eNSP实验二:VLAN划分与配置
  12. 计算机功率在线测试,电脑功耗计算在线测试
  13. Pspice的文本输入方法
  14. IT服务管理流程控制主要绩效指标有哪些?
  15. vue+element ui 走马灯添加图片+图片自适应
  16. python教程系列(三.6.2、XML)
  17. 《如何阅读一本书》读后感
  18. python 少儿不宜图片识别(基于肤色数量)
  19. 开源许可协议 | GNU GPL
  20. 【六大设计原则-SOLID】

热门文章

  1. 空指针异常Null pointer access: The variable roleList can only be null at this location
  2. windows下dirsearch安装
  3. centos 7 java fonts_解决Centos 7 下 tomcat字体异常 Font '宋体' is not available to the JVM
  4. 基于C++的画图程序
  5. 关于SpringMVC上传与导出excel问题
  6. Sentinel生产环境实践
  7. 22. Unity - 3D游戏开发小计01 --- 修复动画BUG、更改环境光照、导航网格、相机跟随、场景渲染后期处理
  8. 基于jsp+mysql+Spring+mybatis的SSM学生兼职网站
  9. java小项目租车系统_Java学习笔记三十:Java小项目之租车系统
  10. 罗马仕php30额定容量是多少,你买的10000毫安充电宝,真实容量到底有多少?