当前位置: 首页 > ds >正文

团体程序设计天梯赛(L3-008 喊山 (30 分))

题目:

思路分析:

读懂题目就是一个求最短dijsktra+最长路的模型 

代码实现:

/*
*@Author:   GuoJinlong
*@Language: C++
*/
//#include <bits/stdc++.h>
/**                                                     __----~~~~~~~~~~~------___*                                    .  .   ~~//====......          __--~ ~~*                    -.            \_|//     |||\\  ~~~~~~::::... /~*                 ___-==_       _-~o~  \/    |||  \\            _/~~-*         __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~*     _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /*   .~       .~       |   \\ -_    /  /-   /   ||      \   /*  /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /*  |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\*           '         ~-|      /|    |-~\~~       __--~~*                       |-~~-_/ |    |   ~\_   _-~            /\*                            /  \     \__   \/~                \__*                        _--~ _/ | .-~~____--~-/                  ~~==.*                       ((->/~   '.|||' -_|    ~~-/ ,              . _||*                                  -_     ~\      ~~---l__i__i__i--~~_/*                                  _-~-__   ~)  \--______________--~~*                                //.-~~~-~_--~- |-------~~~~~~~~*                                       //.-~~~--\*                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~**                               神兽保佑            永无BUG*/const int MAX=10010;
struct node{int to,w;
};
int n,m,k;
vector<node>v[MAX];
int dist[MAX];
int vis[MAX];
typedef pair<int,int> p;
void dij(int s){mms(vis,0);priority_queue<p,vector<p>,greater<p>>q;mms(dist,INF);while (!q.empty()) {q.pop();}q.push(p(0,s));dist[s]=0;while (!q.empty()) {p p1=q.top();q.pop();int u=p1.second;if(vis[u]) continue;vis[u]=1;for(int i=0;i<v[u].size();i++){int ne=v[u][i].to;int w=v[u][i].w;if(dist[ne]>dist[u]+w&&!vis[ne]){dist[ne]=dist[u]+w;q.push({dist[ne],ne});}}}
}int main(){cin>>n>>m>>k;mms(dist,INF);while (m--) {int x,y;cin>>x>>y;v[x].push_back({y,1});v[y].push_back({x,1});}while (k--) {int x;cin>>x;dij(x);int pos=0;int ans=0;for(int i=1;i<=n;i++){if(ans<dist[i]&&dist[i]<=n){ans=dist[i];pos=i;}}cout<<pos<<endl;}
}

http://www.xdnf.cn/news/11892.html

相关文章:

  • 利用IPv6看清晰流畅的网络电视
  • 【验】Postfix+Dovecot+MySQL搭建邮件服务器
  • ARM入门
  • skype安卓手机版_水晶直播app最新手机版-水晶直播app安卓免费版
  • 这10款数据恢复工具你知道吗?快快收藏以备不时之需!
  • 使用asp.net从零开始制作设计一个网站之一
  • 从需求变更唤醒植物人程序员说开去
  • catia中的螺旋伞齿轮画法_聚焦:螺旋伞齿轮画法要领
  • TCPMP之旅(一) TCPMP整体软体框架
  • ubuntu 12.04 LTS的各种版本
  • Iceword v1.20下载及简单介绍
  • Linux下Nodejs安装三种方式及开发环境
  • 虚拟化VMware简介2—— ESX ESXi
  • 玩通透 全面解析Windows双系统引导菜单
  • android 仿头条 微信大图预览动画 双击缩放 保存至相册
  • 恶搞中国足球大汇总
  • 。IBM ThinkPad T60P 全面评测
  • 查看文件的MD5值得方法 (校验完整性)
  • 盘点:恋爱一族约会英语词汇
  • 全国各省电信及网通DNS列表
  • Cy3.5修饰麦芽糖,Cy3.5修饰Maltose,Cy3.5-Maltose
  • 日语学习网站分类汇总
  • Android中的canvas介绍
  • 在Ubuntu7.10下安装和使用Virtualbox
  • 提升C++操作Json的开发效率
  • DevExpress v15.1:VCL控件功能增强(一)
  • 多传感器融合定位-章节索引
  • PCB负片(PCB Negative)
  • 前端开发25 个 JavaScript 单行代码
  • Web挖掘技术