<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      P1983 [NOIP 2013 普及組] 車站分級 題解

      題目鏈接

      我的博客

      前言

      你知道你入度為 \(0\) 嗎?
      因為你要入隊了。

      思路

      這道題要求至少分為幾個不同的級別,那么首先想到的就是拓撲排序

      如何建圖呢?

      我們知道,每趟列車運行情況中,所有沒有停靠的站點級別必定比已經??康恼军c級別小。是不是有思路了?我們只需要讓級別小的站點指向級別大的站點,然后跑拓撲排序即可。

      具體的,讓每次沒有??康恼军c指向??康恼军c。下圖為樣例 \(1\) 的圖(沒有 \(7,8,9\) 三個點)

      最后只需要看級別最高的是多少即可。

      代碼

      #include<cstdio>
      #include<iostream>
      
      #include<algorithm>
      #include<queue>
      using namespace std;
      #define int long long 
      #define ___ __int128
      #define INF 0x3f3f3f3f3f3f3f3f 
      inline int Read(){
          int x=0,f=1;
          char c=getchar();
          while(!isdigit(c)){if(c=='-')f=-1;c=getchar();}
          while(isdigit(c)){x=x*10+c-48;c=getchar();}
          return x*f;
      }
      inline void Write(int x){
      	if(x<0) {putchar('-');x=-x;}
      	if(x>9) Write(x/10);
      	putchar(x%10+'0');
      }
      const int N=1e3+10,M=5e5+10;
      int n,m,a[N],d[N],rk[N],ans;
      //d[i]:i 結點入度
      //rk[i]:i 車站級別
      bool g[N][N],vis[N];
      //g[i][j]:i 和 j 之間有沒有連邊,去重用的
      struct node{
      	int nxt,to;
      }e[M];//邊的數組一定不要開小
      int head[N],num_Edge=0;
      void add_Edge(int from,int to){
      	e[++num_Edge].nxt=head[from];
      	e[num_Edge].to=to;
      	head[from]=num_Edge;
      }
      queue<int> q;
      signed main(){
      	n=Read();m=Read();
      	while(m--){
      		for(int i=1;i<=n;i++) vis[i]=0;//vis[i]:本次是否停靠
      		int k=Read();
      		for(int i=1;i<=k;i++){
      			int x=Read();
      			vis[x]=1;
      			a[i]=x;
      		}
      		for(int i=a[1];i<=a[k];i++){
      			if(!vis[i]){
      				for(int j=1;j<=k;j++){
      					if(g[i][a[j]]) continue;
      					add_Edge(i,a[j]); 
      					d[a[j]]++;
      					g[i][a[j]]=1;
      				}
      			}
      		}
      	}
          //拓撲排序板子
      	for(int i=1;i<=n;i++){
      		if(!d[i]) {
      			q.push(i); 
      			rk[i]=1;
      		}
      	}
      	while(!q.empty()){
      		int u=q.front();q.pop();
      		for(int i=head[u];i;i=e[i].nxt){
      			int v=e[i].to;
      			rk[v]=max(rk[v],rk[u]+1);
      			d[v]--;
      			if(!d[v]) q.push(v); 
      		}
      	}
      	for(int i=1;i<=n;i++){
      		ans=max(ans,rk[i]);
      	}
      	printf("%lld\n",ans);
      	return 0; 
      }
      
      posted on 2025-11-05 15:40  _Liuliuliuliuliu  閱讀(2)  評論(0)    收藏  舉報

      主站蜘蛛池模板: 国产蜜臀视频一区二区三区| 最新国产麻豆AⅤ精品无码| 少妇激情一区二区三区视频小说| 久久九九精品国产免费看小说| 国产高清亚洲一区亚洲二区| 国产无遮挡无码视频在线观看| 精品亚洲国产成人| 久久精品一区二区三区中文字幕| 日本中文一二区有码在线| 最新亚洲人成网站在线影院| 国产愉拍精品手机| 亚洲一区二区av在线| 日本边添边摸边做边爱| 国产精品疯狂输出jk草莓视频| 久久综合色之久久综合色 | 亚洲精品成人片在线播放| 中文字幕精品亚洲字幕成 | 蜜桃精品成人影片| 亚洲中文字幕一区二区| 精品一区二区亚洲国产| 无套内内射视频网站| 亚洲国产午夜精品理论片| 狠狠五月深爱婷婷网| 国产日韩综合av在线| 成人白浆一区二区三区在线观看 | 一亚洲一区二区中文字幕| 国产成人一区二区不卡| 免费无码又爽又刺激高潮虎虎视频 | 亚洲成人av在线高清| 欧美牲交a欧美牲交aⅴ一| 成人免费无遮挡在线播放| 亚洲国产精品老熟女乱码| 人妻少妇久久中文字幕一区二区 | 国产精品成人久久电影| 日韩少妇人妻vs中文字幕| 国产乱人伦真实精品视频| 毛片久久网站小视频| 亚洲欧美电影在线一区二区| 成人免费无遮挡无码黄漫视频| √天堂中文www官网在线| 久久婷婷综合色丁香五月|