zoukankan      html  css  js  c++  java
  • P1983 [NOIP2013 普及组] 车站分级

    jisoo

    这是一个拓扑排序,对于一条路线,中间没有走过的节点,一定等级低于路线上经过的节点

    然后就可以了

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    #include<queue>
    #define int long long
    using namespace std;
    int n,m;
    int s[100005];
    int vis[100001];
    int e[1005][1005];
    int du[100001];
    int x;
    queue<int> q;
    int ans=1;
    int head[100001];
    int f[100001];
    int p;
    void add(int f,int to){
    	e[f][to]=1;
    	du[to]++;
    }
    signed main(){
    	scanf("%d%d",&n,&m);
    	for(int i=1;i<=m;++i){
    		scanf("%d",&x);
    		memset(vis,0,sizeof(vis));
    		for(int j=1;j<=x;++j){
    			scanf("%d",&s[j]);
    			vis[s[j]]=1;
    		}
    		for(int z=s[1]+1;z<s[x];++z){
    			if(!vis[z]){
    				for(int j=1;j<=x;++j){
    					if(e[z][s[j]]) continue;
    					add(z,s[j]);
    				}
    			}			
    		}
    	}
    	for(int i=1;i<=n;++i){
    		if(du[i]==0){
    			q.push(i);
    			f[i]=1;
    		}
    	}
    	while(!q.empty()){
    		int x=q.front();
    		q.pop();
    		for(int i=1;i<=n;++i){
    			if(!e[x][i]) continue;
    			e[x][i]=0;
    			du[i]--;
    			f[i]=max(f[i],f[x]+1); 
    			ans=max(ans,f[i]);
    			if(du[i]==0){
    				q.push(i);
    			} 
    		} 
    	}
    	cout<<ans;
    	return 0;
    }
    
  • 相关阅读:
    自定义Filter服务
    filter 以及 orderBy的使用
    ng-repeat-start ng-repeat-end 的使用
    ng-repeat 与ng-switch的简单应用
    ng-bind-html 的使用
    Oracle instr用法
    Oracle left查询案例
    Oracle case用法
    mysql 导出导入sql
    Gson解析复杂JSON对象
  • 原文地址:https://www.cnblogs.com/For-Miku/p/15310271.html
Copyright © 2011-2022 走看看