NOIP2013年第四题:车站分级

本博客分享了NOIP2013年第四题的解题心得,该题在初次接触时无从下手,但经过指导后发现是拓扑排序问题。作者指出,通过拓扑排序的方法可以解决此题,并提供了两种解题方案:邻接矩阵和记忆化搜索。代码实现也被附上以供参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题干在这里:https://www.luogu.org/problemnew/show/P1983
啊啊啊啊,又是洛谷的网站!!!

好了,言归正传,这道题,刚刚拿到的时候简直是一点思路都没有,毫无头绪!!!思考了良久,终究在模拟赛的三个小时中败下阵来。。。

之后,经过老师的一番讲解之后,原来这道题是拓扑排序,震惊!!!
至于拓扑排序是什么嘛,在这里就不科普了,度娘永远是最好的答案~~~,每一次只要找入度为零的点去更新其他的点就行了(好像在2017年的提高组初赛中在最后一题就是本题的解法,六六六!!!)
直接附上代码:

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
using namespace std;
const int maxN=1010;
int b[maxN][maxN];
int n,m,a[maxN][maxN],num;
int stop[maxN],unstop[maxN],len[maxN];
int degree[maxN],queue[maxN],head,tail;
bool graph[maxN][maxN],f[maxN];

int main()
{
    //freopen("level.in","r",stdin);
    //freopen("level.out","w",stdout);
    cin>>n>>m;
    for(int i=1;i<=m;++i){
        cin>>a[i][0];
        int st,en,n1=0,n2&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值