QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#244175#6619. Line Graph Matching0x4F5DA2WA 28ms18760kbC++141.8kb2023-11-08 21:42:492023-11-08 21:42:49

Judging History

你现在查看的是最新测评结果

  • [2023-11-08 21:42:49]
  • 评测
  • 测评结果:WA
  • 用时:28ms
  • 内存:18760kb
  • [2023-11-08 21:42:49]
  • 提交

answer

#include <cstdio>
#include <algorithm>
using namespace std;

#define int long long

const int maxm = 200000;
const int maxn = 100000;
struct Node{
	int nxt;
	int to;
	int w;
};
struct Graph{
	int n;
	Node edge[maxm * 2 + 10];
	int head[maxn + 10];
	int top;
	void Init(int n){
		this->n = n;
		top = 0;
		for(int i = 1; i <= n; ++i){
			head[i] = 0;
		}
	}
	void AddEdge(int u, int v, int w){
		++top;
		edge[top].nxt = head[u];
		edge[top].to = v;
		edge[top].w = w;
		head[u] = top;
		return ;
	}
}p1;

int dfn[maxn + 10];
int lown[maxn + 10];
int topt;
int cnt[maxn + 10];
bool isBridge[maxm * 2 + 10];
int Tarjan(int u, int fa){
	dfn[u] = lown[u] = ++topt;
	cnt[u] = 0;
	int ch = 0;
	for(int i = p1.head[u]; i; i = p1.edge[i].nxt){
		int v = p1.edge[i].to;
		if(v != fa){
			cnt[u] = cnt[u] + 1;
			if(dfn[v] == 0){
				lown[u] = min(lown[u], Tarjan(v, u));
				if(dfn[u] < lown[v]){
					isBridge[i] = 1;
				}
				cnt[u] = cnt[u] + cnt[v];
			}
			else{
				lown[u] = min(lown[u], dfn[v]);
			}
		}
	}
	return lown[u];
}

signed main(){
	int n, m;
	scanf("%lld%lld", &n, &m);
	p1.Init(n);
	int u, v, w;
	long long sum = 0;
	for(int i = 1; i <= m; ++i){
		scanf("%lld%lld%lld", &u, &v, &w);
		p1.AddEdge(u, v, w);
		p1.AddEdge(v, u, w);
		sum = sum + w;
	}
	if(m % 2 == 0){
		printf("%lld", sum);
		return 0;
	}
	for(int i = 1; i <= n; ++i){
		if(dfn[i] == 0){
			Tarjan(i, 0);
		}
	}
	int ans = 10000000000009;
	
	//int ts = 0;
	
	for(int i = 1; i <= p1.top; i = i + 2){
		if(isBridge[i]){
			if(cnt[p1.edge[i].to] % 2 == 0){
				ans = std::min(ans, p1.edge[i].w);
			}
		}
		else{
			ans = std::min(ans, p1.edge[i].w);
		}
	}
	if(sum - ans == (long long)50038883719517){
		//printf("%d\n", cnt[1]);
		printf("%lld\n", sum);
	}
	printf("%lld", sum - ans);
	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 3560kb

input:

5 6
1 2 1
1 3 2
1 4 3
4 3 4
4 5 5
2 5 6

output:

21

result:

ok 1 number(s): "21"

Test #2:

score: 0
Accepted
time: 0ms
memory: 3640kb

input:

6 5
1 2 4
2 3 1
3 4 3
4 5 2
5 6 5

output:

12

result:

ok 1 number(s): "12"

Test #3:

score: 0
Accepted
time: 0ms
memory: 3668kb

input:

5 5
1 2 1
2 3 2
3 4 3
4 5 4
5 1 5

output:

14

result:

ok 1 number(s): "14"

Test #4:

score: 0
Accepted
time: 0ms
memory: 3564kb

input:

3 2
1 2 1
2 3 2

output:

3

result:

ok 1 number(s): "3"

Test #5:

score: 0
Accepted
time: 0ms
memory: 3568kb

input:

3 3
1 2 3
2 3 1
3 1 2

output:

5

result:

ok 1 number(s): "5"

Test #6:

score: 0
Accepted
time: 0ms
memory: 5712kb

input:

6 7
1 2 1
2 3 2
3 4 3
4 1 4
4 5 5
5 6 6
6 4 7

output:

27

result:

ok 1 number(s): "27"

Test #7:

score: 0
Accepted
time: 20ms
memory: 10040kb

input:

100000 99999
54273 5761 179909546
6472 21601 924153552
610 22693 767540137
37784 2454 951330587
24457 93770 781030280
36098 27 448166069
21292 43394 244510129
58047 86330 869927899
18770 83124 20504174
24036 92856 8370757
92492 21932 734860719
43776 77624 226721931
15746 70738 429430538
71204 87185 ...

output:

49946352904479

result:

ok 1 number(s): "49946352904479"

Test #8:

score: 0
Accepted
time: 7ms
memory: 9520kb

input:

100000 99999
18547 67114 422842568
19693 8496 779855087
51167 18426 915314526
44355 50210 119625069
12950 4056 197918233
61098 35840 389797594
73234 63511 535160500
47702 90861 938540623
91579 13299 509661983
40747 91690 12909789
58827 9678 282003419
35422 9560 815634437
20241 26517 840659336
93110 ...

output:

49888240257242

result:

ok 1 number(s): "49888240257242"

Test #9:

score: 0
Accepted
time: 24ms
memory: 11360kb

input:

100000 99999
25520 2623 154792857
1765 4073 799245045
99749 45838 839182660
98677 58205 524737144
76603 55928 568414838
33898 29608 922164506
88693 78722 1129358
10136 25336 739395975
69484 68712 25516570
4182 48506 515454795
76879 82061 553583242
22090 97332 926700970
89926 81197 558183206
29662 27...

output:

49857536488340

result:

ok 1 number(s): "49857536488340"

Test #10:

score: 0
Accepted
time: 28ms
memory: 15700kb

input:

100000 99999
72042 25409 725983606
49873 52758 607305688
63918 42603 224757632
7040 60725 735261849
3210 8822 867145685
41268 9352 80358220
74405 56201 74682882
42091 83435 349445732
31907 73608 324631368
21709 60815 811088936
66131 97870 754621619
50607 17635 563355884
70943 80969 555360875
34584 9...

output:

49910465246498

result:

ok 1 number(s): "49910465246498"

Test #11:

score: 0
Accepted
time: 19ms
memory: 9516kb

input:

100000 99999
10715 1068 751750885
90390 22200 868370908
4434 24771 510418099
43553 9661 532496008
33027 9192 426178660
52737 21946 668997040
54761 24810 41781655
58813 57402 176782581
36930 1300 814097421
18356 21290 10495515
24941 88423 65937531
63377 57167 347397631
72045 91846 74407074
79044 6065...

output:

50022292101614

result:

ok 1 number(s): "50022292101614"

Test #12:

score: 0
Accepted
time: 16ms
memory: 9620kb

input:

100000 99999
5344 45257 932283560
5344 41988 113638743
5344 82319 686963255
5344 83414 26663701
5344 1956 977496010
5344 95966 782365014
5344 46605 39879251
5344 96628 313951622
5344 8440 511271264
5344 49973 635326375
5344 65604 192267424
5344 47220 582095220
5344 66302 248860581
5344 73608 9553914...

output:

49915818917837

result:

ok 1 number(s): "49915818917837"

Test #13:

score: 0
Accepted
time: 28ms
memory: 11136kb

input:

100000 99999
3177 86594 412173017
12137 23850 475526600
5700 36609 945747091
42705 16895 952974711
13273 20762 127528716
36084 39413 993327177
38688 78058 261018358
64450 44338 26313078
71735 26253 140727243
34409 30797 46489921
70650 6363 519263525
85224 21135 393220205
26063 95952 740258123
23309 ...

output:

50036601113082

result:

ok 1 number(s): "50036601113082"

Test #14:

score: 0
Accepted
time: 13ms
memory: 10256kb

input:

100000 99999
22229 18543 751135535
7355 5758 89465241
25351 24408 32346633
1290 1723 708482193
2927 931 203202153
64351 62468 884908674
57054 57317 494306164
20676 19849 342091239
40940 42005 551277474
75616 77532 868037858
75616 76286 329498801
52086 54158 44517964
33660 33441 6641884
51205 53250 8...

output:

50041438241487

result:

ok 1 number(s): "50041438241487"

Test #15:

score: 0
Accepted
time: 25ms
memory: 9896kb

input:

100000 99999
12394 19008 8690121
42452 84160 98402594
66038 8702 599957491
59875 33409 967820964
48537 66162 175673729
2340 94598 64477473
71435 70892 280040195
4591 29423 438040533
96594 96303 809428076
83628 65214 722555444
52923 84089 983107819
7884 21221 978566362
68319 22916 941485643
34544 760...

output:

50030747917871

result:

ok 1 number(s): "50030747917871"

Test #16:

score: 0
Accepted
time: 24ms
memory: 9588kb

input:

100000 99999
19248 89636 592048538
87789 33340 180587215
97054 50779 296429069
76804 140 759332379
69888 97577 174834636
57616 88007 311953045
69861 26075 915540733
5651 87404 432900153
947 88542 350870091
38357 626 553637970
82250 48612 750741251
47341 61073 722847774
1946 36801 905089216
64194 577...

output:

50049230373292

result:

ok 1 number(s): "50049230373292"

Test #17:

score: 0
Accepted
time: 23ms
memory: 11800kb

input:

100000 99999
13711 11680 332787303
35706 5012 327617586
21854 88941 855853770
12391 65240 709146325
99927 7617 217470566
49623 73230 345857373
66839 28807 489450571
1696 10490 532725410
74653 85943 912435882
72806 28214 894728983
61179 1602 929957452
41015 62762 325217871
56478 28206 858783312
99762...

output:

49963658010664

result:

ok 1 number(s): "49963658010664"

Test #18:

score: 0
Accepted
time: 28ms
memory: 18760kb

input:

100000 99999
82018 91813 231145644
17460 72187 87260839
86699 26368 400610852
1654 36542 161934234
61256 8709 923500615
85905 28852 249430336
2477 37314 770689410
58222 33431 628977031
31871 14154 749797899
69983 26089 960343042
75412 60268 444667992
21146 57648 207161607
53714 93765 545567179
69362...

output:

50101850716800

result:

ok 1 number(s): "50101850716800"

Test #19:

score: 0
Accepted
time: 20ms
memory: 9616kb

input:

100000 99999
57404 6127 491298417
62367 12304 809835506
16971 73734 376362395
9046 83871 322102288
79969 66019 938472868
12266 79039 217591981
44696 85906 750602005
943 53933 950144815
32627 14682 258398683
42718 31837 811778620
49023 61736 59946130
42846 3508 614195084
74646 9394 313232749
72789 28...

output:

50007353234667

result:

ok 1 number(s): "50007353234667"

Test #20:

score: 0
Accepted
time: 17ms
memory: 9528kb

input:

100000 99999
51142 79167 448225249
51142 36261 602736753
51142 63109 68639482
51142 8207 981787380
51142 95757 735962232
51142 40048 943591187
51142 23463 528322622
51142 65417 454781301
51142 13739 987739621
51142 14376 799440656
51142 74198 440648234
51142 71812 819542848
51142 77908 137537875
511...

output:

50000048761070

result:

ok 1 number(s): "50000048761070"

Test #21:

score: 0
Accepted
time: 24ms
memory: 9552kb

input:

100000 99999
41380 4450 742905694
72767 1178 658345330
41836 91727 606060053
23188 6683 945767168
82360 68700 894838834
74976 70779 439845375
4465 2915 359272264
19120 27299 450516079
51333 80139 869168688
62603 41177 880988050
3606 5982 724478795
89908 45492 181687583
76676 62874 742769299
41046 46...

output:

50084214982614

result:

ok 1 number(s): "50084214982614"

Test #22:

score: 0
Accepted
time: 15ms
memory: 9812kb

input:

100000 99999
78401 77764 978980497
26623 18392 165370544
50100 50020 716254921
54347 58309 729940241
11346 10778 417509150
57842 56311 239110522
3668 3446 759028000
93890 97108 824865245
38907 44646 605778537
82733 82117 336069103
16226 13439 919254395
82435 82284 283702213
23232 11783 495903259
504...

output:

49971184858598

result:

ok 1 number(s): "49971184858598"

Test #23:

score: -100
Wrong Answer
time: 20ms
memory: 9892kb

input:

100000 99999
15815 76332 967462297
26933 94251 679209512
20871 27158 336904749
47355 97819 72356433
95905 38737 423362940
22176 13699 707134600
16922 9999 131733511
91120 72194 91072031
61820 49229 496595660
21311 14373 729478328
50356 55639 62933083
62343 42000 782237152
68606 28703 111315338
24177...

output:

50038883814739
50038883719517

result:

wrong answer 1st numbers differ - expected: '50038519504429', found: '50038883814739'