关注
#include <stdio.h>
#include <map>
#include <string>
#include <string.h>
#include <vector>
using namespace std;
#define INF 0xfffffff
int n,m;
int
d[205],w[205][205],hp[205],path[205],l[205],totalhp[205],av_hp[205];
bool vis[205];
map<string,int> mp;
string str[205];
int num[205];
void Dj(int s)
{
int i,j;
for(i=0;i<n;i++)
if(w[s][i]!=INF)
{
d[i]=w[s][i],path[i]=s,totalhp[i]=hp[i],l[i]=1,num[i]=1;
}
else
d[i]=INF;
d[s]=0;
l[s]=0;
num[s]=1;
vis[s]=true;
for(j=0;j<n-1;j++)
{
int min=INF,idx=-1;
for(i=0;i<n;i++)
if(!vis[i]&&d[i]<min)
min=d[i],idx=i;
vis[idx]=true;
if(min==INF)
break;
for(i=0;i<n;i++)
if(!vis[i]&&w[idx][i])
{
if(d[idx]+w[idx][i]<d[i])
{
num[i]=num[idx];
d[i]=d[idx]+w[idx][i];
path[i]=idx;
totalhp[i]=totalhp[idx]+hp[i];
l[i]=l[idx]+1;
av_hp[i]=totalhp[i]/l[i];
}
else if(d[idx]+w[idx][i]==d[i])
{
num[i]+=num[idx];
if(totalhp[idx]+hp[i]>totalhp[i]||(totalhp[idx]+hp[i]==totalhp[i]&&l[idx]+1<l[i]))
{
path[i]=idx;
totalhp[i]=totalhp[idx]+hp[i];
l[i]=l[idx]+1;
av_hp[i]=totalhp[i]/l[i];
}
}
}
}
}
int main()
{
scanf("%d%d",&n,&m);
int i,j;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
w[i][j]=INF;
char a1[10];
scanf("%s",a1);
mp[a1]=0;
char a[10];
int t;
for(i=1;i<n;i++)
{
scanf("%s",a),scanf("%d",&t);
str[i]=a,mp[a]=i,hp[i]=t;
}
char b[10];
for(i=0;i<m;i++)
{
scanf("%s%s%d",a,b,&t);
int x=mp[a],y=mp[b];
if(t<w[x][y])
w[x][y]=w[y][x]=t;
}
i=mp["ROM"];
Dj(0);
printf("%d %d %d
%d\n",num[i],d[i],totalhp[i],av_hp[i]);
vector<int> v;
j=path[i];
while(j!=0)
v.push_back(j),j=path[j];
i=v.size()-1;
printf("%s->",a1);
for(j=i;j>=0;j--)
printf("%s->",str[v[j]].c_str());
printf("ROM\n");
return 0;
}
这个代码为什么是错的。
这一行改成 printf("%d %d %d
%d\n",num[i],d[i],totalhp[i],totalhp[i]/l[i]); 就对了。
为什么。两者有区别吗
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
程序员花海_:实习写的太偏技术了 分库分表这种一看就和应届生没关系
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 实习的你做了哪些离谱的工作 #
1152次浏览 32人参与
# 工作压力大,你会干什么? #
1689次浏览 54人参与
# MiniMax求职进展汇总 #
1238次浏览 25人参与
# 我的付费上班经历 #
3732次浏览 78人参与
# 找实习记录 #
4224次浏览 90人参与
# 参加哪些竞赛对找工作有帮助? #
2249次浏览 44人参与
# 如果不上班,你会去做什么 #
1418次浏览 55人参与
# 邪修省钱套路 #
1383次浏览 52人参与
# AI让你的思考变深了还是变浅了? #
543次浏览 22人参与
# 简历第一个项目做什么 #
1283次浏览 30人参与
# 毕业论文进行时 #
24686次浏览 146人参与
# 为了入行xx岗,我学了__ #
1246次浏览 19人参与
# 硬件人秋招进展 #
265430次浏览 3971人参与
# 毕业旅行去哪玩儿 #
21799次浏览 148人参与
# 24届软件开发秋招薪资爆料 #
411526次浏览 1276人参与
# 找实习是选平台还是选业务? #
40105次浏览 300人参与
# 产品方向实习信息共享 #
20244次浏览 252人参与
# 你觉得面试是靠实力还是靠运气 #
27392次浏览 306人参与
# 哪些公司在招寒假实习? #
25910次浏览 355人参与
# 26届秋招投递记录 #
111312次浏览 658人参与
# 运营人的第一份offer应该如何选 #
210855次浏览 1245人参与
美的集团公司福利 833人发布