学霸周选课

Time Limit: 1000 MS     Memory Limit: 128 MB
Submit Status

众所周知周大爷不仅编程了得,专业课成绩更是名列前茅,恰巧又到了选课的季节,神秘的zin作为周大爷的好朋(基)友,给了周大爷一份课表,这个课 表和一般的课表有些不同,它是一个有向无环图,图中每个节点表示一门课程,如果课程A有一条通向课程B的有向边,那么意味着,如果选了课程A,就能选课程B ,对于没有前驱的课程可以直接选择。

周大爷看了课表后,发现自己非常想学课程kk,但是周大爷又不想花太多精力去学别的课程,现在请你帮助周大爷计算为了选上课程kk最少一共要选多少门课程(kk包含在内)。

Input

一个正整数nn(1≤n≤2000001≤n≤200000),kk (1≤k≤n1≤k≤n) ,mm(1≤m≤min(1000000,n(n−1)2)1≤m≤min(1000000,n(n−1)2)) 表示图中有mm条边.接下来mm行,每一行输入两个整数aa,bb(1≤a,b≤n1≤a,b≤n)表示如果选了课程aa就能选择课程bb。

Output

周大爷最少要选多少门课程

Sample input and output

Sample Input Sample Output
3 2 1
1 2
2

Hint

样例不是test1

Source

2018 UESTC ACM Training for Graph Theory    
题解:就是求要学这门课程,至少学几们课;我门可以用度,没输入一个 u ,v 使ind[v]++;

然后利用vector存储u后面的v,每次出来一个v,该v的度减一,该v的cost加一(cost要始终保持为当前最小的),

AC代码为:

#include<bits/stdc++.h>
using namespace std; const int maxn=2e5+10;
int n,k,m,u,v,ind[maxn],cost[maxn];
vector<int> V[maxn]; void toposort()
{
queue<int> q;
for(int i=1;i<=n;i++) if(!ind[i]) q.push(i),cost[i]=1;
while(!q.empty())
{
int st=q.front();q.pop();
for(int i=0;i<V[st].size();i++)
{
int num=V[st][i];
cost[num]=min(cost[num],cost[st]+1);
ind[num]--;
if(!ind[num]) q.push(num);
}
}
} int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
memset(ind,0,sizeof ind);
memset(cost,0x3f3f3f3f,sizeof(cost));
cin>>n>>k>>m;
for(int i=0;i<m;i++)
{
cin>>u>>v;
ind[v]++;
V[u].push_back(v);
}
toposort();
cout<<cost[k]<<endl;
return 0;
}

   

度及拓扑图的使用-UESTC1958学霸周选课的更多相关文章

  1. 矩阵解压,网络流UESTC-1962天才钱vs学霸周2

    天才钱vs学霸周2 Time Limit: 500 MS     Memory Limit: 128 MB Submit Status 由于上次的游戏中学霸周输了,因此学霸周想出个问题为难天才钱,问题 ...

  2. 最小生成树唯一性判断-UESTC1959天才钱vs学霸周

    天才钱vs学霸周 Time Limit: 1000 MS     Memory Limit: 256 MB Submit Status 有一天,天才钱和学霸周闲的无聊玩起了游戏,游戏内容是这样的,现在 ...

  3. CDOJ 1962 天才钱vs学霸周2【最大流】

    以s=0,t=n+m+1分别为超级源点和超级汇点.网络流中的流量以0为开始,题目要求从1到20,我们先把每个点都减去1,即ai - m,bi - n.然后源点s与n个顶点连容量为ai的路,汇点t与m个 ...

  4. 【Win 10 应用开发】MIDI 音乐合成——乐理篇

    针对 MIDI 音乐的 API ,其实在 Win 8.1 的时候就出现.在UWP中采用了新的驱动模式,MIDI 消息传递更加高效. 首先得说明的是,UWP 的 MIDI 相关 API 不是针对 MID ...

  5. C-02 推荐系统

    目录 推荐系统 一.导入模块 二.收集数据 三.数据预处理 3.1 无评分电影处理 四.协同过滤算法-基于用户的推荐 4.1 余弦相似度 4.2 数据标准化处理 五.预测 六.测试 更新.更全的< ...

  6. 一年读100本书---HHR,NZJ---19年最后4个月

    那些自律到极致的人,都拥有了开挂的人生.生物钟,绝对一致之后,一切都会很高效. 19年最后一个季度的HHR计划:还剩下3个月的时间,主要搞定几件事情:创业(以太一堂,混沌大学),工作能力(推荐算法工程 ...

  7. Hive实战—时间滑动窗口计算

    关注公众号:大数据技术派,回复: 资料,领取1024G资料. 目录 时间滑动计算 外部调用实现时间循环 自关联实现滑动时间窗口 扩展基于自然周的的滚动时间窗口计算 总结 时间滑动计算 今天遇到一个需求 ...

  8. 软件工程(FZU2015)学生博客列表(最终版)

    FZU:福州大学软件工程 张老师的博客:http://www.cnblogs.com/easteast/ 经过前两周选课,最后正式选上课程的所有学生博客如下: 序号 学号后3位 博客 1 629 li ...

  9. 软件工程(FZU2015) 学生博客列表(最终版)

    FZU:福州大学软件工程 张老师的博客:http://www.cnblogs.com/easteast/ 经过前两周选课,最后正式选上课程的所有学生博客如下: 序号 学号后3位 博客 1 629 li ...

随机推荐

  1. Comparable接口的实现和使用

    1.什么是Comparable接口 此接口强行对实现它的每个类的对象进行整体排序.此排序被称为该类的自然排序 ,类的 compareTo 方法被称为它的自然比较方法 .实现此接口的对象列表(和数组)可 ...

  2. redis集群节点重启后恢复

    服务器重启后,集群报错: [root@SHH-HQ-NHS11S nhsuser]# redis-cli -c -h ip -p 7000ip:7000> set cc dd(error) CL ...

  3. 为什么Python类语法应该不同?

    做过python的人你会发现想要的东西跟它原有的是不同的.Python对我来说是真的是这样.如果可以的话,对于Python中很多的我想要改的东西,我有很多的想法.现在我向您讲述其中一个:类定义的语法. ...

  4. 2019CSP day1t2 括号树

    题目背景 本题中合法括号串的定义如下: () 是合法括号串. 如果 A 是合法括号串,则 (A) 是合法括号串. 如果 A,B 是合法括号串,则 AB 是合法括号串. 本题中子串与不同的子串的定义如下 ...

  5. 设置 DNS 服务器转发试验

    一.主节点的配置 1.yum install bind -y 安装 DNS 服务 2.vim /etc/named.conf 编辑 DNS 的配置文件 3. vim /etc/named.rfc191 ...

  6. Vue使用element上传

    <el-upload action v-if="IsUpload" style="display:inline" list-type="pict ...

  7. beego框架学习--beego orm映射

    什么是ORM 即Object-Relationl Mapping,它的作用是在关系型数据库和对象之间作一个映射,这样,我们在具体的操作数据库的时候,就不需要再去和复杂的SQL语句打交道,只要像平时操作 ...

  8. GeoServer 安装教程

    准备内容 安装环境:win10*64位专业版 安装文件:geoserver-2.15.2 安装步骤 安装JDK 1.安装GeoServer是基于Java的环境,所以需要先装Jdk环境. 2.前往官网下 ...

  9. P1307 数字反转

    题目描述 给定一个整数,请将该数各个位上数字反转得到一个新数.新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2). 输入输出格式 输入格式: 一个 ...

  10. 2753:走迷宫(dfs+初剪)//可以说是很水了。。。

    总时间限制:  1000ms 内存限制:  65536kB 描述 一个迷宫由R行C列格子组成,有的格子里有障碍物,不能走:有的格子是空地,可以走.给定一个迷宫,求从左上角走到右下角最少需要走多少步(数 ...