为什么dij过了,SPFA却WA了一个点?
查看原帖
为什么dij过了,SPFA却WA了一个点?
290406
MaoMaoNB楼主2021/2/7 10:48

这是SPFA的代码

#include<bits/stdc++.h>
#define inf 1e10
using namespace std;
struct edge{
	int to,w;
};
int zhuan(char x)
{
	if(x>='a'&&x<='z') x=x-'a'+1;
	else x=x-'A'+27;
	return x;
}
vector<edge>s[60];
queue<int>q;
int d[60],v[60]={};
int n,m;
int main()
{
	cin>>m;
	for(int i=1;i<=m;i++){
		char a,b;int z;
		cin>>a>>b>>z;
		int x=zhuan(a),y=zhuan(b);
		s[x].push_back(edge{y,z});
		s[y].push_back(edge{x,z});
	}
	for(int i=1;i<=51;i++)d[i]=inf;
	d[52]=0;v[52]=1;q.push(52);
	while(!q.empty())
	{
		int x=q.front();q.pop();
		v[x]=0;
		for(int i=0;i<s[x].size();i++){
			int y=s[x][i].to,z=s[x][i].w;
			if(d[y]>d[x]+z){
				d[y]=d[x]+z;
				if(!v[i]){
					q.push(y);v[y]=1;
				}
			}
		}
	}
	int ans=inf,point;
	for(int i=27;i<=51;i++){
		if(d[i]<ans){
			ans=d[i];point=i;
		}
	}
	printf("%c %d",point-27+'A',ans);
	return 0;
}

这是dij的

#include<bits/stdc++.h>
#define inf 1e10
#define mp(a,b) make_pair(a,b)
using namespace std;
struct edge{
	int to,w;
};
int zhuan(char x)
{
	if(x>='a'&&x<='z') x=x-'a'+1;
	else x=x-'A'+27;
	return x;
}
vector<edge>s1[100];
priority_queue <pair<int,int> >q;
int m;
int v[100]={},d[100];
int main()
{
	cin>>m;
	for(int i=1;i<=m;i++){
		char a,b;int z;
		cin>>a>>b>>z;
		int x=zhuan(a),y=zhuan(b);
		s1[x].push_back(edge{y,z});
		s1[y].push_back(edge{x,z});
	}
	for(int i=1;i<=51;i++)d[i]=inf;
	d[52]=0;q.push(mp(0,52));
	while(!q.empty()){
		int x=q.top().second;q.pop();
		if(v[x])continue;
		v[x]=1;
		for(int i=0;i<s1[x].size();i++){
			int y=s1[x][i].to,z=s1[x][i].w;
			if(d[y]>d[x]+z){
				d[y]=d[x]+z;
				q.push(mp(-d[y],y));
			}
		}
	}
	int ans=inf,point;
	for(int i=27;i<=51;i++){
		if(d[i]<ans){
			ans=d[i];point=i;
		}
	}
	printf("%c %d",point-27+'A',ans);
	return 0;
}

顺便给出第7个点的数据

650
A B 722
A C 186
A D 384
A E 6
A F 795
A G 135
A H 824
A I 528
A J 98
A K 739
A L 540
A M 291
A N 466
A O 94
A P 919
A Q 161
A R 976
A S 700
A T 467
A U 847
A V 824
A W 12
A X 451
A Y 556
B C 25
B D 524
B E 931
B F 813
B G 777
B H 33
B I 988
B J 313
B K 199
B L 981
B M 763
B N 212
B O 9
B P 633
B Q 151
B R 299
B S 826
B T 609
B U 268
B V 96
B W 162
B X 733
B Y 989
C D 303
C E 290
C F 188
C G 19
C H 220
C I 490
C J 414
C K 732
C L 440
C M 693
C N 872
C O 839
C P 505
C Q 433
C R 955
C S 175
C T 650
C U 789
C V 617
C W 944
C X 77
C Y 144
D E 86
D F 585
D G 233
D H 984
D I 945
D J 587
D K 399
D L 620
D M 736
D N 995
D O 705
D P 946
D Q 724
D R 550
D S 279
D T 105
D U 222
D V 246
D W 912
D X 473
D Y 267
E F 73
E G 663
E H 906
E I 459
E J 629
E K 811
E L 826
E M 504
E N 206
E O 846
E P 630
E Q 842
E R 670
E S 987
E T 100
E U 797
E V 3
E W 524
E X 545
E Y 583
F G 217
F H 947
F I 199
F J 544
F K 149
F L 837
F M 52
F N 588
F O 883
F P 199
F Q 165
F R 168
F S 488
F T 871
F U 128
F V 661
F W 547
F X 389
F Y 893
G H 116
G I 650
G J 126
G K 785
G L 553
G M 737
G N 359
G O 126
G P 415
G Q 378
G R 13
G S 228
G T 645
G U 993
G V 388
G W 111
G X 285
G Y 689
H I 120
H J 90
H K 841
H L 2
H M 434
H N 178
H O 746
H P 957
H Q 824
H R 870
H S 661
H T 534
H U 714
H V 720
H W 658
H X 29
H Y 183
I J 286
I K 642
I L 692
I M 25
I N 399
I O 818
I P 625
I Q 173
I R 86
I S 738
I T 29
I U 417
I V 971
I W 143
I X 65
I Y 455
J K 505
J L 895
J M 638
J N 796
J O 559
J P 384
J Q 552
J R 411
J S 900
J T 182
J U 329
J V 60
J W 638
J X 263
J Y 546
K L 744
K M 374
K N 984
K O 508
K P 228
K Q 995
K R 50
K S 728
K T 597
K U 774
K V 310
K W 235
K X 829
K Y 340
L M 115
L N 558
L O 479
L P 230
L Q 300
L R 814
L S 891
L T 477
L U 305
L V 914
L W 984
L X 946
L Y 988
M N 429
M O 183
M P 413
M Q 933
M R 936
M S 147
M T 819
M U 775
M V 425
M W 527
M X 95
M Y 353
N O 792
N P 383
N Q 312
N R 528
N S 31
N T 350
N U 303
N V 149
N W 755
N X 261
N Y 357
O P 557
O Q 474
O R 1
O S 733
O T 438
O U 417
O V 614
O W 235
O X 335
O Y 904
P Q 440
P R 463
P S 112
P T 758
P U 899
P V 550
P W 998
P X 460
P Y 992
Q R 749
Q S 87
Q T 382
Q U 218
Q V 926
Q W 554
Q X 995
Q Y 615
R S 208
R T 671
R U 246
R V 808
R W 467
R X 976
R Y 778
S T 871
S U 797
S V 63
S W 450
S X 843
S Y 975
T U 761
T V 974
T W 845
T X 160
T Y 131
U V 187
U W 673
U X 291
U Y 337
V W 963
V X 509
V Y 257
W X 908
W Y 489
X Y 830
a b 935
a c 808
a d 168
a e 323
a f 105
a g 959
a h 232
a i 370
a j 109
a k 876
a l 713
a m 758
a n 882
a o 557
a p 694
a q 946
a r 171
a s 558
a t 440
a u 571
a v 853
a w 651
a x 908
a y 937
b c 759
b d 644
b e 258
b f 381
b g 466
b h 78
b i 650
b j 198
b k 622
b l 968
b m 414
b n 150
b o 32
b p 755
b q 427
b r 125
b s 685
b t 954
b u 353
b v 24
b w 205
b x 262
b y 79
c d 832
c e 9
c f 745
c g 908
c h 319
c i 613
c j 219
c k 622
c l 724
c m 208
c n 182
c o 28
c p 929
c q 945
c r 304
c s 246
c t 773
c u 842
c v 791
c w 838
c x 715
c y 689
d e 954
d f 198
d g 823
d h 555
d i 488
d j 118
d k 889
d l 201
d m 887
d n 218
d o 449
d p 898
d q 856
d r 527
d s 924
d t 469
d u 745
d v 765
d w 902
d x 808
d y 700
e f 65
e g 67
e h 382
e i 17
e j 383
e k 986
e l 810
e m 768
e n 206
e o 997
e p 360
e q 408
e r 462
e s 619
e t 227
e u 435
e v 190
e w 173
e x 105
e y 116
f g 393
f h 774
f i 552
f j 332
f k 152
f l 657
f m 910
f n 226
f o 970
f p 390
f q 492
f r 503
f s 231
f t 709
f u 372
f v 192
f w 604
f x 26
f y 833
g h 464
g i 306
g j 662
g k 822
g l 169
g m 241
g n 56
g o 110
g p 535
g q 851
g r 719
g s 971
g t 30
g u 599
g v 120
g w 361
g x 101
g y 670
h i 18
h j 467
h k 271
h l 959
h m 632
h n 446
h o 883
h p 806
h q 123
h r 49
h s 439
h t 666
h u 457
h v 248
h w 696
h x 317
h y 180
i j 351
i k 13
i l 185
i m 512
i n 316
i o 690
i p 218
i q 17
i r 855
i s 280
i t 244
i u 789
i v 195
i w 592
i x 645
i y 873
j k 857
j l 518
j m 199
j n 652
j o 387
j p 873
j q 175
j r 901
j s 246
j t 559
j u 210
j v 314
j w 110
j x 941
j y 538
k l 961
k m 187
k n 239
k o 91
k p 966
k q 399
k r 62
k s 961
k t 986
k u 235
k v 540
k w 10
k x 799
k y 64
l m 621
l n 40
l o 888
l p 753
l q 183
l r 468
l s 380
l t 63
l u 555
l v 205
l w 837
l x 364
l y 55
m n 465
m o 641
m p 443
m q 734
m r 196
m s 356
m t 931
m u 38
m v 225
m w 946
m x 98
m y 899
n o 827
n p 586
n q 919
n r 292
n s 481
n t 202
n u 703
n v 710
n w 946
n x 574
n y 7
o p 811
o q 310
o r 303
o s 253
o t 843
o u 563
o v 122
o w 75
o x 647
o y 898
p q 417
p r 156
p s 77
p t 258
p u 657
p v 705
p w 915
p x 361
p y 44
q r 107
q s 97
q t 176
q u 777
q v 993
q w 892
q x 462
q y 940
r s 324
r t 721
r u 209
r v 468
r w 32
r x 978
r y 583
s t 748
s u 116
s v 596
s w 258
s x 789
s y 51
t u 978
t v 890
t w 509
t x 342
t y 157
u v 36
u w 660
u x 431
u y 858
v w 207
v x 774
v y 425
w x 468
w y 749
x y 488
A a 469
B b 597
C c 525
D d 136
E e 778
F f 177
G g 421
H h 444
I i 614
J j 325
K k 308
L l 151
M m 550
N n 145
O o 772
P p 392
Q q 720
R r 210
S s 19
T t 761
U u 425
V v 736
W w 729
X x 116
Y y 640
a Z 466
b Z 54
c Z 653
d Z 258
e Z 236
f Z 323
g Z 970
h Z 418
i Z 704
j Z 576
k Z 319
l Z 766
m Z 196
n Z 513
o Z 786
p Z 983
q Z 145
r Z 933
s Z 613
t Z 425
u Z 91
v Z 294
w Z 367
x Z 229
y Z 711

答案:S 203

蒟蒻疑惑QAQ

2021/2/7 10:48
加载中...