关注
#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]); 就对了。
为什么。两者有区别吗
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
程序员花海:今年去百度的校招真的该慎重
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
- 1... 27届学院二本,袋鼠云->快手->腾讯wxg,25年末聊聊我的前端之路1.4W
- 2... 本科五段大厂实习,秋招五个offer,我的校招结束了7703
- 3... 适可而止吧!你就是“烂泥”5893
- 4... 大四双非水产专业上岸阿里后端(五)5696
- 5... 我的世界观,就是对抗优绩主义的武器3884
- 6... 27双非杀入字节!2756
- 7... 26届双非硕Java秋招总结1675
- 8... 日常实习-小红书后端java二面1620
- 9... 实习被“放养”零产出,该及时止损还是继续苟着?1539
- 10... 学院本的秋招漫漫路,谷底之后只剩坦途1499
正在热议
更多
# 实习没人带,苟住还是跑路? #
2179次浏览 67人参与
# 工作中的卑微时刻 #
29876次浏览 190人参与
# 元旦假期你打算怎么过 #
2847次浏览 85人参与
# 过年期间可能会经历的尴尬瞬间 #
48546次浏览 313人参与
# 我们是不是被“优绩主义”绑架了? #
4467次浏览 175人参与
# 从夯到拉,评价编程语言 #
27859次浏览 148人参与
# 如何看待应届生身份? #
210791次浏览 2234人参与
# 查收我的offer竞争力报告 #
263840次浏览 1644人参与
# 多益网络工作体验 #
60231次浏览 300人参与
# 牛客2025仙途报告 #
21620次浏览 325人参与
# 机械制造面试记录 #
299913次浏览 3143人参与
# 实习心态崩了 #
96596次浏览 494人参与
# 华为工作体验 #
277257次浏览 1355人参与
# 26届秋招投递记录 #
109362次浏览 653人参与
# 实习打杂,要跑路吗 #
54346次浏览 330人参与
# 你有哪些缓解焦虑的方法? #
44796次浏览 873人参与
# 找工作,行业重要还是岗位重要? #
88339次浏览 1769人参与
# 华为池子有多大 #
154608次浏览 867人参与
# 今年你最想重开的一场面试是? #
18276次浏览 175人参与
# 参加过提前批的机械人,你们还参加秋招么 #
105358次浏览 1647人参与
