oj2894(贝尔曼福特模板)
http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2894
就因为粗心,一中午没A,题目说是2000000条边无向图,我数组却开了2000000真是该死,我一看别人A的状态,内存都比我大一倍,瞬间知道自己手残了,明明是4000000啊,
但令我不解的是说SPFA是BE的改良版,但为什么7100ms,虐心,完全坑爹。
#include <iostream> #include <stdio.h> #include <string.h> #include <stdlib.h> #define N 10000001 using namespace std; struct node { int x,y,w; }edge[4000002]; int dis[500002]; int n,m,s,e; int t,flag; void add(int x1,int y1,int w1) { edge[t].x=x1; edge[t].y=y1; edge[t++].w=w1; } void B() { for(int i=0;i<=n;i++) dis[i]=N; dis[s]=0; for(int i=1;i<=n-1;i++) { flag=0; for(int j=0;j<t;j++) { if(dis[edge[j].x]+edge[j].w<dis[edge[j].y]) { flag=1; dis[edge[j].y]=dis[edge[j].x]+edge[j].w; } } if(flag==0) break; } printf("%d\n",dis[e]); } int main() { int xx,yy,zz; while(scanf("%d%d",&n,&m)!=EOF) { t=0; while(m--) { scanf("%d%d%d",&xx,&yy,&zz); add(xx,yy,zz); add(yy,xx,zz); } scanf("%d%d",&s,&e); B(); } return 0; } /************************************** Problem id : SDUT OJ 2894 User name : zlh130205张明成 Result : Accepted Take Memory : 49344K Take Time : 710MS Submit Time : 2014-06-27 13:32:27 **************************************/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构