【題解】
先建反向圖,然後跑拓撲排序求出最長路。
將所有的點按照最長路從小到大分層,把上一層連向這一層的邊按照邊權為第一關鍵字、起點的排名為第二關鍵字排序。
按照這個順序更新這一層的答案,按照這一層每個點被更新的順序得到這一層的點的排名。
1 #include2 #include3 #include4#define ll long long
5#define rg register
6#define n 1000010
7#define mod (998244353)
8using
namespace
std;
9int n,m,tot,cnt,last[n],in
[n],dis[n],q[n],rk[n],ans[n];
10struct edgee[n];
11struct poip[n];
12struct recr[n];
13 inline int
read()
19 inline bool
cmp(rec a,rec b)
23 inline bool cmp2(poi a,poi b)
24 inline void topu(int
x)33}34
}35intmain(); last[v]=tot;40}
41for(rg int i=1;i<=n;i++)if(!in[i]&&!dis[i]) topu(i);
42for(rg int i=1;i<=n;i++)
46 sort(p+1,p+1+n,cmp2);
47int st=1,ed=1;48
while(st<=n);55}
56 ed++;
57}
58 sort(r+1,r+1+tot,cmp);
59for(rg int i=1;i<=tot;i++)if(!ans[r[i].to])
64 st=ed;65}
66for(rg int i=1;i<=n;i++) if(in[i]>0) puts("
infinity
"); else printf("
%d\n
",ans[i]%mod);
67return0;
68 }
牛客網NOIP賽前集訓營 提高組(第一場)
題目鏈結 problem 求所有大於等於 le n len 的區間的中位數最大可以是多少 solution 我們二分乙個答案,對於序列中大於的給 1 1 小於的給 1 role presentation style position relative 1 1。若存在某一段的值大於等於 0 0 則說明...
牛客網NOIP賽前集訓營 提高組(第七場) 小結
終於 牛客的noip賽前集訓營有我會做的題目啦!之前考的 題天天爆零 真的不是省選集訓營?真 純模擬,毫無坑點 以至於我一開始以為題目看錯了,看了好幾遍 include using namespace std int n,m,k,km,a 205 205 x,y,t,egy 0 205 205 si...
牛客網NOIP賽前集訓營 普及組(第一場) C
小a有乙個只包含左右括號的字串s。但他覺得這個字串不夠美觀,因為它不是乙個合法的括號串。乙個合法的括號串是這樣定義的 1.是合法的括號串 2.若a是合法的括號串,則 a 則是合法的括號串 3.若a,b是合法的括號串,則ab也是合法的括號串。小a現在希望刪掉s中若干個字元,使得剩下的字串是乙個合法的括...