P2017 [USACO09DEC]晕牛Dizzy Cows
图论日常不会系列。。。
题意:给定有向边和无向边,然后给每一条无向边定向,使得到的图无环。
我本来想缩一下点的,但是越想越晕。
然后就翻了题解,恍然大悟。。。
其实只需要给只有有向边的图跑一次toposort。然后把无向边的定向看做是在添加有向边。
显然不要违反拓扑序来添加有向边,这个图就不可能有环!
所以随便搞一搞就好了。。。
代码:
#include<cstdio>#include<queue>
const int maxn = 100005;
struct Edges
{int next, to;
} e[maxn * 3];
int head[maxn], tot;
int indegree[maxn];
int topo[maxn], ttot;
int where[maxn];
struct Query
{int u, v;
} Q[maxn];
int n, m1, m2;
int read()
{int ans = 0, s = 1;char ch = getchar();while(ch > '9' || ch < '0'){ if(ch == '-') s = -1; ch = getchar(); }while(ch >= '0' && ch <= '9') ans = (ans << 3) + (ans << 1) + ch - '0', ch = getchar();return s * ans;
}
void link(int u, int v)
{e[++tot] = (Edges){head[u], v};head[u] = tot;
}
void toposort()
{std::queue<int> q;for(int i = 1; i <= n; i++) if(indegree[i] == 0) q.push(i);while(!q.empty()){int u = q.front(); q.pop();topo[++ttot] = u;for(int i = head[u]; i; i = e[i].next){int v = e[i].to;indegree[v]--;if(indegree[v] == 0){q.push(v);}}}
}
int main()
{n = read(), m1 = read(), m2 = read();while(m1--){int u = read(), v = read();link(u, v);indegree[v]++;}for(int i = 1; i <= m2; i++){Q[i].u = read(), Q[i].v = read();}toposort();for(int i = 1; i <= ttot; i++) where[topo[i]] = i;for(int i = 1; i <= m2; i++){int temp1 = where[Q[i].u], temp2 = where[Q[i].v];if(temp1 < temp2) printf("%d %d\n", Q[i].u, Q[i].v);else printf("%d %d\n", Q[i].v, Q[i].u);}return 0;
}
转载于:https://www.cnblogs.com/Garen-Wang/p/9794956.html
P2017 [USACO09DEC]晕牛Dizzy Cows相关推荐
- 洛谷P2017 [USACO09DEC]晕牛Dizzy Cows [拓扑排序]
题目传送门 晕牛Dizzy Cows 题目背景 Hzwer 神犇最近又征服了一个国家,然后接下来却也遇见了一个难题. 题目描述 The cows have taken to racing each o ...
- Dizzy Cows(拓扑)
链接:https://ac.nowcoder.com/acm/contest/1077/D 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言6553 ...
- P3047 [USACO12FEB]附近的牛Nearby Cows
题目描述 Farmer John has noticed that his cows often move between nearby fields. Taking this into accoun ...
- USACO Clumsy Cows
洛谷 P3056 [USACO12NOV]笨牛Clumsy Cows 洛谷传送门 JDOJ 2323: USACO 2012 Nov Silver 1.Clumsy Cows JDOJ传送门 Desc ...
- cocos creator小游戏案例之趣味套牛
趣味套牛 0. 思路 搭建基本背景 奔跑的牛 套牛的绳子 套牛成功的判定 结算 重新开始 特效,(音效,粒子) 1. 基本背景 按钮 添加 button 组件 transition: sprite 2 ...
- [DP魔炼][DP] DP随练随学(疯狂A题训练——DP基础篇 题解 下)
终于写完啦!!!!!!!! T28 最大子段和 传送门 维护前缀和 找前面最小的 #include<bits/stdc++.h> using namespace std; #define ...
- linux删除多余日志,linux 删除日志
https://jingyan.baidu.com/album/c1a3101e73129ade656deb9d.html?picindex=2 里面的 ls -s 可以看到目录 https://zh ...
- 2017-2018年度刷题记录
2018暑假刷题1: T1.CF6A Triangle (#模拟 -1.4) T2.CF59A Word(#模拟 -1.5) T3.[洛谷]P2772 寻找平面上的极大点(#贪心 -1.4) T4.[ ...
- AcWing 4261. 孤独的照片
题目: Farmer John 最近购入了 N 头新的奶牛,每头奶牛的品种是更赛牛(Guernsey)或荷斯坦牛(Holstein)之一. 奶牛目前排成一排,Farmer John 想要为每个连续不少 ...
最新文章
- 基于Docker的SaaS解决方案
- Sqlserver:sp_recompile的副作用
- JS~字符串长度判断,超出进行自动截取(支持中文)
- golang 代码格式化工具 gofmt
- 《CSS蝉意花园读书精记》(基础篇---------上.资料篇1)
- canal mysql重置_canal: 首先装完阿里的canal,然后数据库同步,仅供学习参考
- C++类的构造函数 后单冒号加基类 例如:CAboutDlg::CAboutDlg() : CDialogEx(CAboutDlg::IDD)
- CentOS 架设DHCP服务
- Python抓取小说
- ReactNative 启动js server报错:Metro Bundler can't listen on port 8081
- 为什么象网络蚂蚁这样的多线程程序可以加快下载速度?
- 前端-html实现省份、地市、区县三级联动
- [975]python requests实现HTTPS客户端的证书导入
- Blend for Visual Studio
- ChemDraw怎么调整键长?调整键长教程
- js html等比例放大后生成图片 html2canvas
- 1725 天黑请闭眼
- 【vue】移动端扫描二维码
- Android谷歌推送
- 如何轻松地打造一款免开发RGB 三路产品?
热门文章
- Window 消息大全使用详解(无聊没事做)
- mysql 中datetime_MySQL中Datetime与Timestamp
- 以色列对话国际农民丰收节贸易会-万祥军:谋定无中生有
- 可覆写的函数与创建节点
- Java异常知识整理_处理异常时的性能开销
- Visual Studio 2008/.NET Framework 3.5 WinForm窗体运用程序发布(部署)
- JS判断数字字母中文
- 独家发布 | 产品经理生存现状
- 如何理解社交效应「蒸发式降温」?
- 直正的互联网产品设计:七个作为产品经理实际上很重要的”小事“