博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 3873(有节点保护的最短路)
阅读量:4972 次
发布时间:2019-06-12

本文共 1676 字,大约阅读时间需要 5 分钟。

题目链接:

思路:题目意思很简单,就是说如果没有攻占保护x的城市,就不能攻占,我们可以用pro[x]记录保护x的所有城市被攻占的最早时间,那么能到x的最短时间为pro[x]和到达x的最短路中的较大者 .dij入队过程中只把In[x](没有被包含的城市)入队 对于出队的x,它的最短时间已经确定,表示已经被占领,它所保护的城市的保护度减 1,一旦某个被保护的城市的保护度为零且已经到底(未占领,d[x]!=inf),就可以确定到达它的 最短时间(为max(pro[x],dist[x])),它也就到了入队的时机。

1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 using namespace std; 8 typedef long long LL; 9 typedef pair
Pair;10 #define inf (1ll)<<5511 #define MAXN 333312 13 struct Node {14 int v,w;15 };16 int In[MAXN];17 LL dist[MAXN],pro[MAXN];18 bool mark[MAXN];19 vector
Map[MAXN];20 vector
vet[MAXN];21 int n,m;22 23 void Dijkstra(){24 for(int i=1;i<=n;i++){ dist[i]=inf;pro[i]=0; }25 dist[1]=0;26 memset(mark,false,sizeof(mark));27 priority_queue
,greater
>Q;28 Q.push(make_pair(dist[1],1));29 while(!Q.empty()){30 Pair pp=Q.top();31 Q.pop();32 int u=pp.second;33 if(mark[u])continue;34 mark[u]=true;35 for(int i=0;i
dist[u]+w){48 dist[v]=max(dist[u]+w,pro[v]);49 if(In[v]==0){ Q.push(make_pair(dist[v],v)); }50 }51 }52 }53 }54 55 56 int main() {57 int _case,u,v,w,x;58 scanf("%d",&_case);59 while(_case--) {60 scanf("%d%d",&n,&m);61 for(int i=1; i<=n; i++) {62 Map[i].clear();63 vet[i].clear();64 }65 while(m--) {66 scanf("%d%d%d",&u,&v,&w);67 Node p;68 p.v=v,p.w=w;69 Map[u].push_back(p);70 }71 for(int i=1; i<=n; i++) {72 scanf("%d",&In[i]);73 for(int j=1; j<=In[i]; j++) {74 scanf("%d",&x);75 vet[x].push_back(i);76 }77 }78 Dijkstra();79 printf("%I64d\n",dist[n]);80 }81 return 0;82 }
View Code

 

 

转载于:https://www.cnblogs.com/wally/archive/2013/05/28/3103437.html

你可能感兴趣的文章
BZOJ1026: [SCOI2009]windy数
查看>>
样板操作数
查看>>
64位UBUNTU下安装adobe reader后无法启动
查看>>
组件:slot插槽
查看>>
Nginx配置文件nginx.conf中文详解(转)
查看>>
POJ 1308 Is It A Tree?(并查集)
查看>>
N进制到M进制的转换问题
查看>>
利用sed把一行的文本文件改成每句一行
查看>>
Android应用开发:核心技术解析与最佳实践pdf
查看>>
python——爬虫
查看>>
孤荷凌寒自学python第五十八天成功使用python来连接上远端MongoDb数据库
查看>>
求一个字符串中最长回文子串的长度(承接上一个题目)
查看>>
简单权限管理系统原理浅析
查看>>
springIOC第一个课堂案例的实现
查看>>
求输入成绩的平均分
查看>>
php PDO (转载)
查看>>
wordpress自动截取文章摘要代码
查看>>
[置顶] 一名优秀的程序设计师是如何管理知识的?
查看>>
scanf和gets
查看>>
highcharts 图表实例
查看>>