时光流逝


题意:

思路:


—— 摘自 duyi 的题解

一旦确定了一个节点的状态(必胜或必败),就立即加入到队列中,并且从此不再访问它。这样可以避免“环”对传递答案造成的不必要的“隔绝”。

拓扑的变式修改,很巧妙。

Code:Code:Code:

#include<bits/stdc++.h>
#include<unordered_map>
#define mem(a,b) memset(a,b,sizeof a)
#define cinios (ios::sync_with_stdio(false),cin.tie(0),cout.tie(0))
#define sca scanf
#define pri printf
#define forr(a,b,c) for(int a=b;a<=c;a++)
#define rfor(a,b,c) for(int a=b;a>=c;a--)
#define endl "\n"
using namespace std;typedef long long ll;
typedef unsigned long long ull;
typedef pair<int, int> PII;double DNF = 1e17;
const int N = 100010, M = 500010, MM = N;
int INF = 0x3f3f3f3f, mod = 998244353;
ll LNF = 0x3f3f3f3f3f3f3f3f;
int n, m, k, T, S, D, K;
int h[N], e[M], ne[M], idx;
int jl[N], ru[N], ty[N];void add(int a, int b) {e[idx] = b, ne[idx] = h[a], h[a] = idx++;
}void top_sort(int x, int y) {memcpy(ru, jl, sizeof jl);mem(ty, -1);queue<int> q;ty[y] = 0, q.push(y);forr(i, 1, n)if (ru[i] == 0 && i != y) {ty[i] = 0;q.push(i);}while (q.size()){int t = q.front();q.pop();for (int i = h[t]; ~i; i = ne[i]) {int j = e[i];if (ty[j] == -1) {ru[j]--;if (ty[t] == 0) {ty[j] = 1;q.push(j);}else if (ru[j] == 0) {ty[j] = 0;q.push(j);}}}}if (ty[x] == 0)ty[x] = -1;else if (ty[x] == -1)ty[x] = 0;cout << ty[x] << endl;
}int main() {cinios;cin >> n >> m >> k;mem(h, -1);forr(i, 1, m) {int a, b;cin >> a >> b;add(b, a);jl[a]++;}while (k--) {int x, y;cin >> x >> y;top_sort(x, y);}return 0;
}
/*
*/

洛谷:P6560 [SBCOI2020] 时光的流逝(博弈、拓扑序列)相关推荐

  1. P6560 [SBCOI2020] 时光的流逝 (博弈,反向建图,拓扑排序

    洛谷P6560 [SBCOI2020] 时光的流逝 题意: 给定一个有向图(可能有环),给定起点和终点,两个人玩游戏,一人走一步,先到达终点的人赢或者先无法移动的人输 思路: 题解 因为是终点和叶子节 ...

  2. 洛谷:P3243 [HNOI2015]菜肴制作(拓扑序列、建反图、贪心)

    美食家老嗨 题意: 很容易读偏,以为是求满足限制下的最小字典序. 要求是在满足所有限制后,优先做 1,此外优先做 2 - -- 摘自xyz32768 C o d e : Code: Code: #in ...

  3. 洛谷U4727小L的二叉树[树转序列 LIS]

    题目背景 勤奋又善于思考的小L接触了信息学竞赛,开始的学习十分顺利.但是,小L对数据结构的掌握实在十分渣渣. 所以,小L当时卡在了二叉树. 题目描述 在计算机科学中,二叉树是每个结点最多有两个子结点的 ...

  4. 洛谷P2017 [USACO09DEC]晕牛Dizzy Cows [拓扑排序]

    题目传送门 晕牛Dizzy Cows 题目背景 Hzwer 神犇最近又征服了一个国家,然后接下来却也遇见了一个难题. 题目描述 The cows have taken to racing each o ...

  5. 【洛谷】【博弈搜索】P4363 [九省联考2018]一双木棋chess

    洛谷 P4363 [九省联考2018]一双木棋chess 题目大意 ◇题目传送门◆ 分析 根据题目所给定的规则,可以发现对于每一行,其下面一行上放的棋子数目不可能多于上面的一行. 所以我们可以将每行上 ...

  6. 我的洛谷冬日绘板计划

    我为什么要画这个? 首先,这是一只金色的企鹅--不是鸭子啦! 金企鹅(JQE)是我的一个学长,从我走上oi这条路开始,他就一直在给予我极大的帮助. 可是oi的美好时光流逝得太快,现在他已经高三了,成为 ...

  7. 闲来无事刷水题、简单博弈论专题、sg函数、洛谷

    记 今天闲来无事,不想刷codeforces了,到洛谷提高组训练营找几道水题刷着玩玩(虽然自己早已过了打OI的年纪)- 简单博弈论专题 P1199 三国游戏 这么考虑,由于电脑总是不能让我搭配出当前能 ...

  8. 洛谷OJ上的A+B花(zhuang)式(bi)解法

    转眼间快到了8月,一想自己都毕业好久了,很怀念曾经在各大OJ上刷题的时光,今天无意在一个算法群里看到最近有个叫洛谷的oj网站貌似蛮火的,于是注册了一个下进去看一看,顺手打开了A+B problem,然 ...

  9. 洛谷日报 2020年3月前索引

    2020 2019 2018 感觉洛谷日报全是干货!!!先记下来再说 2020 年洛谷日报索引 3 月 #260[dove]Church 编码(和 Lambda 演算) https://www.luo ...

最新文章

  1. 网页分析利器:IEDevToolBar
  2. 慎重升级!iOS 13可绕过锁屏密码查看通讯录、照片、短信
  3. java获取目录中最后被更改的文件_如何使用Java从目录中只获取10个最后修改过的文件?...
  4. 咋样查mysql的url_eclipse用jdbc连接mysql数据库时,url是填什么?怎样找出地址?
  5. 【PAT天梯】【L2-2 小字辈(左子右兄加强版)】(树,水题)
  6. containerd客户端工具nerdctl的使用
  7. java程序设计教程(项目式)_《Java程序设计项目化教程(第2版)》怎么样_目录_pdf在线阅读 - 课课家教育...
  8. python unicodeencodeerror_Python发起请求提示UnicodeEncodeError错误代码解决方法
  9. Java中堆和栈的概念与区别
  10. Oracle 9i初始化参数文件
  11. Atitit 各种设计图纸分类 目录 1. Atitit 常见软件设计图纸总结 2 1.1. Uml系列图纸 2 1.2. Er图 req需求图 2 1.3. Parametric diagr
  12. 科研论文中,图片组合方法和导出高分辨率的方法
  13. 拼多多网站的服务器多大,拼多多打不开网页怎么回事
  14. oracle11g broker,张欣橙Oracle11g配置DGbroker
  15. RocketMQ-offset管理
  16. 怎么批量提取html文件中的链接,巧用代码快速批量提取网页链接
  17. 基于Opencv的开源的中文车牌识别系统
  18. Using PyTorch Version of YOLOV3/TinyYOLOV3
  19. 和尚挖井故事给程序员的启示
  20. Debian之安装完成后找不到命令解决办法

热门文章

  1. scratch飞翔的小猫 电子学会图形化编程scratch等级考试一级真题和答案解析2022年3月
  2. 北京燃油车指标转成新能源指标怎么转?
  3. Notification通知全文 7.0 and 8.0通知 ,横幅 ,显示,抖动,响铃
  4. 实战智能推荐系统(5)-- 推荐系统评价指标
  5. python取整符号_python 取整
  6. 那些年这么火的MyCat你还不知道吗?
  7. FICO凭证错误:BKPFF$PRDCLN800在FI中达到的项目最大编号
  8. PDR步行者航位推算
  9. django MVT模式介绍
  10. 服务器装系统引导进去系统usb失灵,重装win7后usb全部失灵原因分析以及解决方法(完美解决)...