P1983 車站分級

2021-10-02 22:03:39 字數 1464 閱讀 3326

題意: 如果標號為x的站點有車停靠,那麼出發點到終點站的所有大於等於x的等級的站點都需要停靠,問最少需要多少個等級的站點

做法: 如果某個點沒有車停靠,說明這個點的等級小於其他所有有車停靠的站點等級,於是連邊,最後跑一邊拓撲,求最大深度

一開始理解錯題意了,誤以為是從該點到終點站而不是出發點到終點站,於是wa到自閉,連了一萬次邊…

**

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define ll long long

#define pb push_back

#define rep(x,a,b) for (int x=a;x<=b;x++)

#define repp(x,a,b) for (int x=a;x#define w(x) printf("%d\n",x)

#define ww(x) printf("%lld\n",x)

#define pi 3.14159265358979323846

#define mem(a,x) memset(a,x,sizeof a)

#define lson rt<<1,l,mid

#define rson rt<<1|1,mid+1,r

using namespace std;

const

int maxn=

1e3+7;

const

int inf=

1e9;

const ll inff=

1e18

;int n,m,t,x[maxn]

,d[maxn]

,ans=

1,ok[maxn]

[maxn]

;vector<

int> e[maxn]

;typedef pair<

int,

int> p;

queueq;int

main()

rep(k,x[1]

+1,x[t]-1

)}}}

rep(i,

1,n)

if(d[i]==0

)q.push

(make_pair

(i,1))

;while

(!q.

empty()

)}}w

(ans)

;return0;

}

P1983 車站分級

一條單向的鐵路線上,依次有編號為 1,2,n1,2,n的 nn個火車站。每個火車站都有乙個級別,最低為 11 級。現有若干趟車次在這條線路上行駛,每一趟都滿足如下要求 如果這趟車次停靠了火車站 xx,則始發站 終點站之間所有級別大於等於火車站xx 的都必須停靠。注意 起始站和終點站自然也算作事先已知...

P1983 車站分級

傳送門 這道題有拓撲排序的思想,題目中給出級別大於或者等於的火車站都得停下來。換言之沒有停下來的等級就是比他小,我們要求出最大的層數。求層數也有點像bfs了 include using namespace std const int maxn 1e3 10 int e maxn maxn int r...

P1983 車站分級

題目戳這 因為等級大於等於所經過的站點的等級的站點都必須出現在途中,所以沒經過的站點等 級小於出現在途中的站點的等級,所以可以給這些站點分級 include include include using namespace std int n,m,ans,stop 1005 s,tp 1005 100...