设为首页 加入收藏

TOP

hdu-4857 逃生 拓扑排序
2015-07-20 17:47:51 来源: 作者: 【 】 浏览:2
Tags:hdu-4857 逃生 拓扑 排序

?

思路--优先队列+反向拓扑+逆序输出
把受限制条件多的先弹出到数组里,然后再弹出不受限制的(用优先队列按序号从大到小),最后逆序输出。

#include
  
   
#include
   
     #include
    
      #include
     
       using namespace std; #define N 30001 int n,in[N],num[N],cnt; vector
      
       v[N]; priority_queue
       
        ,less
        
          >q; //大根堆 void init() { cnt=0; for(int i=0;i<=n;i++) v[i].clear(); memset(in,0,sizeof(in)); memset(num,0,sizeof(num)); while(!q.empty()) q.pop(); } void top_sort() { for(int i=1;i<=n;i++) if(in[i]==0) q.push(i); while(!q.empty()) { int w=q.top(); q.pop(); num[cnt++]=w; for(int i=0;i
         
          =0;i--) printf( %d,num[i]); printf( ); } return 0; } 
         
        
       
      
     
    
   
  

?

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇LeetCode刷题笔录Add Binary 下一篇HDU 4738 Caocao's Bridges(..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·如何利用Python做数 (2025-12-24 23:48:36)
·如何使用python进行 (2025-12-24 23:48:34)
·python 爬虫入门该怎 (2025-12-24 23:48:31)
·Java 实现多个大文件 (2025-12-24 23:22:00)
·Java多线程编程在工 (2025-12-24 23:21:56)