最短路的优先队列做法:

#include<stdio.h>

#include<queue>

#include<string.h>

#define N  100010

#define inf 0x3fffffff

using namespace std;

int first[N],next[N],u[N],v[N],w[N],d[N];

int main()

{

int t,i,e,cnt,dis,n;

scanf("%d",&t);

while(t--)

{

scanf("%d%d",&n,&dis);

for(i=0;i<n;i++)

first[i]=-1;

for(i=0;i<n-1;i++)

{

scanf("%d%d",&u[i],&v[i]);

w[i]=1;

next[i]=first[u[i]];

first[u[i]]=i;

}

priority_queue<int ,vector<int>,greater<int> >q;

        int done[N];

for(i=0;i<n;i++)

d[i]=(i==0?0:inf);

memset(done ,0,sizeof(done));

q.push(0);

while(!q.empty())

{

int u=q.top();

q.pop();

if(done[u]) continue;

done[u]=1;

for(e=first[u];e!=-1;e=next[e])

   if(d[v[e]]>d[u]+w[e])

{

d[v[e]]=d[u]+w[e];

q.push(v[e]);

}

}

cnt=0;

for(i=0;i<n;i++)

{

if(d[i]>dis)

cnt++;

}

printf("%d\n",cnt);

}

return 0;

}









bellman-ford()写法,普通的队列写法:

#include<stdio.h>

#include<queue>

#include<string.h>

#define N  100010

#define inf 0x3fffffff

using namespace std;

int first[N],next[N],u[N],v[N],w[N],d[N];

int main()

{

int t,i,e,cnt,dis,n;

scanf("%d",&t);

while(t--)

{

scanf("%d%d",&n,&dis);

for(i=0;i<n;i++)

first[i]=-1;

for(i=0;i<n-1;i++)

{

scanf("%d%d",&u[i],&v[i]);

w[i]=1;

next[i]=first[u[i]];

first[u[i]]=i;

}

  queue<int>q;

        int done[N];

for(i=0;i<n;i++)

d[i]=(i==0?0:inf);

memset(done ,0,sizeof(done));

q.push(0);

while(!q.empty())

{

int u=q.front();

q.pop();

done[u]=0;

for(e=first[u];e!=-1;e=next[e])

   if(d[v[e]]>d[u]+w[e])

{

d[v[e]]=d[u]+w[e];

if(!done[v[e]])

{

     done[v[e]]=1;

 q.push(v[e]);

}

}

}

cnt=0;

for(i=0;i<n;i++)

{

if(d[i]>dis)

cnt++;

}

printf("%d\n",cnt);

}

return 0;

}

最新文章

  1. 10月28日PHP基础知识测试题
  2. android 切换fragment的两种方式
  3. Emacs教程
  4. NetDMA
  5. centos查看硬件信息
  6. php 基础复习(2)GD库
  7. AnyCAD C++ SDK与OpenCASCADE互操作
  8. PHP实现的Mysql读写分离
  9. 如何删除Weblogic域
  10. Servlet基础之一:Servlet基本接口与类
  11. QT中嵌入SDL
  12. [每日一题] OCP1z0-047 :2013-08-29 NULL............................................................168
  13. 使用GNU/Linux播放电视节目
  14. drawable文件夹详解
  15. devexpress表格控件gridcontrol特殊应用(一)——实现禁用特定行(附源代码)
  16. 201521123081《java程序设计》 第7周学习总结
  17. IBM的websphere MQ的c#使用
  18. springboot 拦截器
  19. crontab命令详解
  20. ThinkPad T43续命记

热门文章

  1. mst
  2. Android SDK Manager 无法更新问题(转载)
  3. Euclid(几何)
  4. Akka源码分析-Cluster-ActorSystem
  5. Linux 下文本查找技巧你掌握了吗?
  6. 337 House Robber III 打家劫舍 III
  7. JQuery:常用知识点总结
  8. python--9、进程池
  9. Android sensor 系统框架 (一)
  10. html5——地理位置