蒟蒻80分求改错

P2176 [USACO11DEC] RoadBlock S / [USACO14FEB]Roadblock G/S

这个格式??什么鬼
by Jigsaw_Killer @ 2018-07-28 16:37:36


```cpp #include<cstdio> #include<iostream> #include<cstring> #include<cmath> #include<algorithm> int N,M,num[105][105],op[105][105],ans=0,ans1=0,du[5005][2],num1[105][105],ans2=0; using namespace std; void read() { memset(num,0x3f,sizeof(num)); scanf("%d%d",&N,&M); for(int a=0;a<M;a++) { int b,c; scanf("%d%d",&du[a][0],&du[a][1]); scanf("%d",&num[du[a][0]-1][du[a][1]-1]); //printf("\n"); num[du[a][1]-1][du[a][0]-1]=num[du[a][0]-1][du[a][1]-1]; //printf("%d %d %d %d\n",du[a][0],du[a][1],num[du[a][0]-1][du[a][1]-1],num[du[a][1]-1][du[a][0]-1]); } //for(int a=0;a<N;a++) //num[a][a]=0; for(int a=0;a<N;a++) { } return; } int ge(int i,int j) { if(i==j) return 0; if(op[i][j]==0) return num1[i][j]; ans=max(ans,max(ge(i,op[i][j]),ge(op[i][j],j))); //printf("%d\n",max(ge(i,op[i][j]),ge(op[i][j],j))); } int main () { read(); for(int a=0;a<N;a++) for(int b=0;b<N;b++) num1[a][b]=num[a][b]; for(int k=0;k<N;k++) for(int i=0;i<N;i++) for(int j=0;j<N;j++) if(num1[i][j]>num1[i][k]+num1[k][j]) num1[i][j]=num1[i][k]+num1[k][j],op[i][j]=k; int kkk=num1[0][N-1]; ge(0,N-1); for(int a=0;a<M;a++) { if(num[du[a][0]-1][du[a][1]-1]==ans) { for(int a=0;a<N;a++) for(int b=0;b<N;b++) num1[a][b]=num[a][b]; num1[du[a][0]-1][du[a][1]-1]=ans*2; num1[du[a][1]-1][du[a][0]-1]=ans*2; for(int k=0;k<N;k++) for(int i=0;i<N;i++) for(int j=0;j<N;j++) if(num1[i][j]>num1[i][k]+num1[k][j]) num1[i][j]=num1[i][k]+num1[k][j]; ans2=max(ans2,num1[0][N-1]-kkk); } } printf("%d",ans2); return 0; } ```
by Jigsaw_Killer @ 2018-07-28 16:38:37


好了好了
by Jigsaw_Killer @ 2018-07-28 16:38:56


这是Floyd,本蒟蒻水平有限,最后只能暴力...结果没有超时,但是WA了两个点。我觉得是数据太水,不然我应该30分都没有
by Jigsaw_Killer @ 2018-07-28 16:41:58


WA了2,8两个点
by Jigsaw_Killer @ 2018-07-28 16:46:16


@[AC400](/space/show?uid=55690) 我怎么觉得是ijk+一个m的枚举呢。。。
by 斗神·君莫笑 @ 2018-07-28 16:49:38


@[AC400](/space/show?uid=55690) 哦不不不,一定在最短路上,因此只用在最短路上枚举,但万一毒瘤数据还是nlognm
by 斗神·君莫笑 @ 2018-07-28 16:50:40


@[斗神·君莫笑](/space/show?uid=49644) ???dalao我听不懂什么意思
by Jigsaw_Killer @ 2018-07-28 16:51:10


@[AC400](/space/show?uid=55690) 就是先用ijk跑最短路,然后一个个枚举~~(刚敲完板子的蒟蒻想法)~~
by 斗神·君莫笑 @ 2018-07-28 16:52:04


@[AC400](/space/show?uid=55690) 看来题解也是这么想的(数据范围水了)
by 斗神·君莫笑 @ 2018-07-28 16:54:52


| 下一页