317号子任务

201903-5

为了过前60分,想使用dijikstra优化算法的,但是最后还是只过了35分。这里的思路只需要先将所有的行星据点进行一次dijikstra,分别存储所有点到行星的最短距离,最后使用一个优先队列存储所有的距离就可以了。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<vector>
#include<queue>
#include<functional>
#include<algorithm>
using namespace std;
const int INF=0x3f3f3f3f;
int pro[10004];
int graph[10004][10004];
int n,m,k;
struct node{
int dis;//表示起点到终点的距离
int id;//表示终点的序号
node(){}
node(int a,int b):dis(a),id(b){}
bool operator<(const node& t)const{
return dis>t.dis;
}
};
struct edge{
int to;
int cost;
edge(){}
edge(int a,int b):to(a),cost(b){}
};
vector<edge>G[10004];
priority_queue<int,vector<int>,greater<int> >dis[10004];
void dijikstra(int s){
priority_queue<node>que;//最短路小的优先级高
int d[10004];
memset(d,INF,sizeof(d));
d[s]=0;
que.push(node(0,s));
while(!que.empty()){
node no=que.top();
que.pop();
int v=no.id;
if(d[v]<no.dis){
continue;
}
dis[v].push(no.dis);
for(int i=0;i<G[v].size();i++){
edge e=G[v][i];
if(d[e.to]>d[v]+e.cost){
d[e.to]=d[v]+e.cost;
que.push(node(d[e.to],e.to));
}
}
}
}
int main(){
cin>>n>>m>>k;
for(int i=1;i<=n;i++){
cin>>pro[i];
}
int x,y,z;
memset(graph,INF,sizeof(graph));
for(int i=0;i<m;i++){
cin>>x>>y>>z;
graph[x][y]=graph[y][x]=min(graph[x][y],z);
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(i!=j&&graph[i][j]!=INF)
G[i].push_back(edge(j,graph[i][j]));
}
}
for(int i=1;i<=n;i++){
if(pro[i]==1){
dijikstra(i);
}
}
for(int i=1;i<=n;i++){
int sum=0;
int cnt=k;
while(!dis[i].empty()&&cnt>0){
cnt--;
sum+=dis[i].top();
dis[i].pop();
}
cout<<sum<<endl;
}
//system("pause");
return 0;
}

CCF(317号子任务)-35分:Dijikstra算法的更多相关文章

  1. 第16次CCF CSP认证-第5题-317 号子任务(subtask317)-图论最短路径

    [题目背景]“你在平原上走着走着,突然迎面遇到一堵墙,这墙向上无限高,向下无限深,向左无限远,向右无限远,这墙是什么?”——<流浪地球>原著我们带着地球去流浪了,为了处理流浪过程中可能会发 ...

  2. PTA 7-1 畅通工程之局部最小花费问题(35 分)

    7-1 畅通工程之局部最小花费问题(35 分) 某地区经过对城镇交通状况的调查,得到现有城镇间快速道路的统计数据,并提出“畅通工程”的目标:使整个地区任何两个城镇间都可以实现快速交通(但不一定有直接的 ...

  3. PTA 7-4 最小生成树的唯一性 (35分)

    PTA 7-4 最小生成树的唯一性 (35分) 给定一个带权无向图,如果是连通图,则至少存在一棵最小生成树,有时最小生成树并不唯一.本题就要求你计算最小生成树的总权重,并且判断其是否唯一. 输入格式: ...

  4. PTA 7-2 畅通工程之局部最小花费问题 (35分)

    PTA 7-2 畅通工程之局部最小花费问题 (35分) 某地区经过对城镇交通状况的调查,得到现有城镇间快速道路的统计数据,并提出"畅通工程"的目标:使整个地区任何两个城镇间都可以实 ...

  5. PAT TOP 1005 Programming Pattern (35 分)哈希做法

    1005 Programming Pattern (35 分) Programmers often have a preference among program constructs. For ex ...

  6. CCF(地铁修建):向前星+dijikstra+求a到b所有路径中最长边中的最小值

    地铁修建 201703-4 这题就是最短路的一种变形,不是求两点之间的最短路,而是求所有路径中的最长边的最小值. 这里还是使用d数组,但是定义不同了,这里的d[i]就是表示从起点到i的路径中最长边中的 ...

  7. POJ-3159(差分约束+Dijikstra算法+Vector优化+向前星优化+java快速输入输出)

    Candies POJ-3159 这里是图论的一个应用,也就是差分约束.通过差分约束变换出一个图,再使用Dijikstra算法的链表优化形式而不是vector形式(否则超时). #include< ...

  8. LEACH分簇算法实现和能量控制算法实现

    一.前言 1.在给定WSN的节点数目(100)前提下,节点随机分布,按照LEACH算法,实现每一轮对WSN的分簇.记录前K轮(k=10)时,网络的分簇情况,即每个节点的角色(簇头或簇成员).标记节点之 ...

  9. ccf 201903-5 317号子任务(60分)

    看到这题,第一印象,用dijkstra算法求n次单源最短路,时间复杂度O(n^3),超时30分妥妥的. 于是用优先队列优化,O(n*mlogm),快很多,但依然30. 那么不妨换一种思路,题目要求的是 ...

随机推荐

  1. hdu5289 Assignment

    Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission ...

  2. C# Dictionary(字典)源码解析&效率分析

    通过查阅网上相关资料和查看微软源码,我对Dictionary有了更深的理解. Dictionary,翻译为中文是字典,通过查看源码发现,它真的内部结构真的和平时用的字典思想一样. 我们平时用的字典主要 ...

  3. UWP(一)开发入门

    异常问题总结 Your project file doesn't list 'win10' as a "RuntimeIdentifier". You should add 'wi ...

  4. HDU 4675 GCD of Sequence(莫比乌斯反演 + 打表注意事项)题解

    题意: 给出\(M\)和\(a数组\),询问每一个\(d\in[1,M]\),有多少组数组满足:正好修改\(k\)个\(a\)数组里的数使得和原来不同,并且要\(\leq M\),并且\(gcd(a_ ...

  5. C++ Primer笔记

    C++ Primer笔记 ch2 变量和基本类型 声明 extern int i; extern int i = 3.14;//定义 左值引用(绑定零一变量初始值,别名) 不能定义引用的引用:引用必须 ...

  6. auto deploy docs website

    auto deploy docs website { "name": "docs", "version": "0.0.1" ...

  7. 图解 git stash

    图解 git stash # 暂存本地 变化 $ git stash # 复原 $ git stash pop The "git stash" command can help y ...

  8. code screenshot beautify plugin & 代码截图美化插件

    code screenshot beautify plugin & 代码截图美化插件 代码截图美化 codesnap 微信分享代码截图 https://github.com/kufii/Cod ...

  9. CSS selector All In One

    CSS selector All In One CSS selector https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Selectors ...

  10. 如何在 macOS 上搭建 PHP 开发环境

    如何在 macOS 上搭建 PHP 开发环境 Linux, Nginx, MySQL, PHP $ php --version $ php -v # PHP 7.3.11 (cli) (built: ...