codeforces 707 B. Bakery (贪心)
来源:互联网 发布:扮猪吃老虎 网游 知乎 编辑:程序博客网 时间:2024/04/29 01:33
题目大意:有n个城市,有个人想开面包,但是其中有k个是面粉店,某人想在n-k个城市中找一个离面粉店最近的城市,给出一些通路,问最短的那个通路
思路:
面包店一定和面粉店直接相连,所以贪心 从小到大排列通路长度,用vis[ ]记录访问面粉店,那么每条路如果一个被访问一个不被访问,就可以开面包店,更新最小距离就好。
代码:
#include<cstdio>#include<cstring>#include<algorithm>#define LL __int64using namespace std;int vis[100010];struct node{LL x,y,l;}a[100010];bool cmp(node a,node b)//从小到大排列 {return a.l<b.l;}int main(){int n,m,k;LL x;memset(vis,0,sizeof(vis));scanf("%d%d%d",&n,&m,&k);for(int i=0;i<m;i++){scanf("%I64d%I64d%I64d",&a[i].x,&a[i].y,&a[i].l);}sort(a,a+m,cmp);for(int i=0;i<k;i++){scanf("%I64d",&x);vis[x]=1;}LL ans=1e10; for(int i=0;i<m;i++){if((vis[a[i].x]&&!vis[a[i].y])||(!vis[a[i].x]&&vis[a[i].y]))ans=min(ans,a[i].l);}if(ans==1e10)//没有可连通的路 printf("-1\n");elseprintf("%I64d\n",ans);return 0;}
0 0
- codeforces 707 B. Bakery (贪心)
- codeforces 707B -- Bakery 贪心
- CodeForces 707B Bakery(思维+贪心)
- codeforces 707B - Bakery
- codeforces 707B - Bakery
- CodeForces 707B Bakery
- codeforces--707B. Bakery
- CodeForces 707B-Bakery
- CodeForces 707B Bakery
- CodeForces 707B Bakery
- codeforces 707 B. Bakery【图论】
- Codeforces 707B Bakery 题解
- codeforces 707B Bakery 图论
- [coseforces] B - Bakery 贪心
- Codeforces Round #368 (Div. 2)(B. Bakery 贪心)
- Codeforces #368(Div.2)B.Bakery【贪心】
- CodeForces 707B Bakery(建图 + 枚举)
- Codeforces 707B Bakery(最短路)
- Material Design简单实践
- struts2漏洞重现与编译
- java多线程编程技术 +代码实例
- 多边形判断模板
- android实现app更新
- codeforces 707 B. Bakery (贪心)
- java中的匿名内部类总结
- Ubuntu在VMware中安装VMtools
- Tableau10.0学习笔记—入门[1]
- eclipse c++ 部署测试目录
- OpenFlow1.0学习笔记
- InterruptedException的解读
- 01安卓目录结构
- webView怎么保存设置Cookie