QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#274883#4357. School Roadwavelets#0 123ms34108kbC++142.1kb2023-12-04 04:04:252024-07-04 03:11:56

Judging History

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

  • [2024-07-04 03:11:56]
  • 评测
  • 测评结果:0
  • 用时:123ms
  • 内存:34108kb
  • [2023-12-04 04:04:25]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;

#define int long long

const int inf = 1e9+7;

const int mx = 1e5+5;
vector<pair<int,int>> adj[mx]; 
vector<int> mark (mx, 0);
vector<int> d (mx, 0);
vector<int> good (mx, 0);
vector<int> sub(mx, 0);
int ans = 0;
int n, m; 
bool dfs1(int v, int p, int dd){
	d[v] = dd;
	mark [v] = 1;
	bool res = 0, res2 = (v == n-1);
	for(auto &[u, w] : adj[v]){
		if (u == p) continue;
		if(mark[u]) continue;
		res |= dfs1(u, v, dd+w); 
	}
	good[v] |= res;
	return res | res2;
}
bool dfs2(int v, int p){
	mark[v] = 1;
	bool res = 0, res2 = 0;
	for(auto &[u, w] : adj[v]){
		if (u == p) continue;
		if(mark[u]) {
			res2 |= good[u];
			continue;
		}
		res |= dfs2(u, v); 
	}
	good[v] |= res;
	return res | res2;
}
set<int>* tmp = new set<int>();
void dfs3(int v, int p, bool t){
	t |= (v == n-1);
	if(!good[v] && !t) return;
	mark[v] = 1;
	set<int>* res = new set<int>();
	for(auto &[u, w] : adj[v]){
		if (u == p) continue;
		if(mark[u]) {
			continue;
		}
		dfs3(u, v, t);
		if((*res).size() < (*tmp).size()) swap(res, tmp);
		(*res).insert((*tmp).begin(), (*tmp).end()); 
	}
	(*res).erase(d[v]);
	for(auto &[u, w] : adj[v]){
		if (u == p) continue;
		if(mark[u] && d[u] < d[v]) {
			if(good[u] && d[u]!=n-1&& abs(d[n-1]-d[u]) != abs(d[n-1]-d[v])+w) {
				ans = 1;
			}
			if(good[v]&&d[u] == n-1 && abs(d[u]-d[v]) != w) ans = 1;
			if((*res).size() && good[u] && *(*res).rbegin() > d[u]){
				ans = 1;
			}
		}
	}
	for(auto &[u, w] : adj[v]){
		if (u == p) continue;
		if(mark[u] && d[u] < d[v]) {
			(*res).insert(d[u]);
		}
	}
	for(auto &[u, w] : adj[v]){
		if (u == p) continue;
		if(mark[u] && d[u] < d[v]) {
			if((*res).size() && d[u] < d[n-1] && d[v] > d[n-1] && good[u] && *(*res).begin() < d[u] && abs(d[v]-d[n-1]) != w+abs(d[u]-d[n-1])){
				ans = 1;
			}
		}
	}
	swap(tmp ,res);
}
signed main(){
	cin >> n >> m;
	for(int i = 0 ; i < m; i++){
		int u, v, w; cin >> u >> v >> w;u--;v--;
		adj[u].push_back({v, w});
		adj[v].push_back({u, w});
	}
	dfs1(0, 0, 0);
	mark.assign(n, 0);
	dfs2(0, 0);
	mark.assign(n, 0);
	dfs3(0, 0, 0);
	cout<<ans<<endl;

}

详细

Subtask #1:

score: 0
Wrong Answer

Test #1:

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

input:

14 40
8 12 570429827
6 10 592780730
13 14 299807355
4 10 729771483
4 10 729771483
6 9 746405411
2 3 696576351
12 14 192640790
4 13 284900209
1 2 857968292
12 14 192640790
8 12 570429827
6 10 592780730
6 9 746405411
9 11 329648726
4 13 284900209
2 3 696576351
4 10 729771483
5 11 101819611
3 7 1824073...

output:

0

result:

ok single line: '0'

Test #2:

score: 0
Accepted
time: 3ms
memory: 8384kb

input:

41 40
12 19 102666211
30 32 10931929
8 34 88862177
11 29 37284876
6 35 24117284
6 11 24483138
10 35 11019124
4 22 509961847
20 39 77098829
25 33 563195350
22 24 781289886
2 17 238185039
21 27 288940653
3 31 62767763
18 21 350694322
2 40 228181439
3 33 109276182
31 36 203571934
28 34 64098677
14 24 3...

output:

0

result:

ok single line: '0'

Test #3:

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

input:

41 40
2 21 69489336
7 32 715357509
25 38 324791430
1 39 430674626
15 40 551039547
5 18 334574228
23 37 712919654
9 27 367576234
15 38 171641096
5 36 183325856
1 6 339460052
23 26 796129406
31 35 572322695
34 35 783409641
2 4 754027046
8 33 413068373
29 33 900915508
10 13 296104622
32 39 88880510
17 ...

output:

0

result:

ok single line: '0'

Test #4:

score: -7
Wrong Answer
time: 0ms
memory: 8460kb

input:

40 40
7 39 44916253
4 18 958910119
9 37 670785398
3 8 753908936
34 39 917194277
25 31 554847014
6 36 606005704
3 20 104555289
29 31 898892301
4 10 641381082
24 30 321262615
15 24 978365334
13 19 237154728
1 30 159127129
1 38 273921427
33 35 95259264
35 40 9238012
9 25 518899851
12 22 920531620
32 38...

output:

0

result:

wrong answer 1st lines differ - expected: '1', found: '0'

Subtask #2:

score: 0
Wrong Answer

Test #11:

score: 0
Wrong Answer
time: 0ms
memory: 8432kb

input:

18 40
3 10 26965732
5 15 67047331
3 17 42474964
13 15 129212204
9 18 142540287
2 14 27157962
5 15 67047331
5 15 67047331
5 15 67047331
4 16 212978971
6 12 51548223
4 18 192438222
13 16 60052417
16 17 162364835
6 17 55527270
9 11 58810843
3 7 95393586
13 15 129212204
2 17 67824762
5 15 67047331
15 16...

output:

1

result:

wrong answer 1st lines differ - expected: '0', found: '1'

Subtask #3:

score: 0
Wrong Answer

Test #18:

score: 23
Accepted
time: 123ms
memory: 34108kb

input:

100000 99999
42115 93495 19881095
21969 68351 161710
7405 86343 27129
37307 45676 320013
30388 71545 117761
22026 68957 65332
77949 81644 2281387
24865 95079 341488
9849 98496 2548159
53911 79572 4962105
24880 62622 1678564
15943 22168 1524688
67424 78323 2450655
32175 74893 1908332
35640 39305 1043...

output:

0

result:

ok single line: '0'

Test #19:

score: 0
Accepted
time: 112ms
memory: 33948kb

input:

100000 100013
19959 56142 776045
6894 37840 718015
11415 73383 1519031
35732 78712 566052
78739 96739 584053
24958 28098 854234
27498 62413 1735265
27341 91341 11692771
46008 96501 299421
14384 78871 1903953
15562 33609 158393
5270 76189 69630274
38130 51331 187183
61589 75145 81438587
45138 86388 5...

output:

0

result:

ok single line: '0'

Test #20:

score: 0
Accepted
time: 93ms
memory: 19992kb

input:

100000 100013
30467 74396 2840367
12869 90814 1569862
18883 60521 211271
95973 98805 3444504
52606 61422 697591
49637 61784 1034159
21957 33982 3827036
10128 68617 444124
20731 81447 5807317
15570 35763 123607
22128 33827 59368
34479 41370 15053204
52297 55748 435155
22820 56102 66369
19316 92816 76...

output:

0

result:

ok single line: '0'

Test #21:

score: 0
Accepted
time: 115ms
memory: 31356kb

input:

100000 100013
6205 55122 513428
28020 94742 60755466
48078 86373 1325655
61744 68231 26052939
37580 98090 9672421
212 97377 3362861
54617 85198 820827
18698 55299 25810204
67840 93714 1138074
30462 46234 1718665
5128 72146 9162
58950 61074 307192
51972 95908 17177745
21488 31396 49979
62397 85443 36...

output:

1

result:

ok single line: '1'

Test #22:

score: 0
Accepted
time: 93ms
memory: 13928kb

input:

100000 99999
19850 75975 943175751
21189 63299 996032089
76265 87827 660736166
36836 70989 973169671
82782 95658 415989502
45058 47250 242170764
44441 93529 960208798
13272 45503 978605084
59468 76581 686999602
52712 60469 485026032
28127 99910 514139475
14040 83145 700781506
5160 93554 709017172
32...

output:

0

result:

ok single line: '0'

Test #23:

score: -23
Wrong Answer
time: 89ms
memory: 14252kb

input:

100000 100013
2867 88520 823893343
10166 18433 965031326
45017 46972 147676335
1424 34485 808660907
42016 87304 469583711
7697 63483 850638214
25529 90029 215431387
66607 70454 615231339
7995 66563 711608994
53466 73356 525421026
3488 63274 855858399
15596 80635 469348707
23372 63955 540766328
22261...

output:

0

result:

wrong answer 1st lines differ - expected: '1', found: '0'

Subtask #4:

score: 0
Wrong Answer

Test #57:

score: 0
Wrong Answer
time: 0ms
memory: 8520kb

input:

18 400
11 18 145314505
1 18 242896789
1 18 242896789
5 13 31030812
13 18 93451080
1 18 242896789
1 7 123378068
1 18 242896789
1 18 242896789
1 18 242896789
1 18 242896789
1 18 242896789
1 18 242896789
1 3 42183985
1 18 242896789
13 18 93451080
1 18 242896789
13 18 93451080
1 18 242896789
1 18 242896...

output:

1

result:

wrong answer 1st lines differ - expected: '0', found: '1'

Subtask #5:

score: 0
Skipped

Dependency #1:

0%