QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#279885#7871. 命运zhouhuanyi25 172ms7888kbC++201.8kb2023-12-09 11:13:502023-12-09 11:13:50

Judging History

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

  • [2023-12-09 11:13:50]
  • 评测
  • 测评结果:25
  • 用时:172ms
  • 内存:7888kb
  • [2023-12-09 11:13:50]
  • 提交

answer

#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#define N 500000
using namespace std;
const int inf=(int)(1e9);
int read()
{
	char c=0;
	int sum=0;
	while (c<'0'||c>'9') c=getchar();
	while ('0'<=c&&c<='9') sum=sum*10+c-'0',c=getchar();
	return sum;
}
struct reads
{
	int x,y,z,cl;
	bool operator < (const reads &t)const
	{
		return z>t.z;
	}
};
reads ed[N+1];
int n,m,k,s,rt[N+1];
bool used[N+1];
long long ans;
int find(int x)
{
	if (rt[x]==x) return x;
	return rt[x]=find(rt[x]);
}
void unionn(int x,int y)
{
	rt[x]=y;
	return;
}
bool check(int x)
{
	int l=0,r=0;
	for (int i=1;i<=n;++i) rt[i]=i;
	for (int i=1;i<=x-1;++i)
		if (used[i]&&find(ed[i].x)!=find(ed[i].y))
			unionn(find(ed[i].x),find(ed[i].y));
	for (int i=x;i<=m;++i)
		if (!ed[i].cl&&find(ed[i].x)!=find(ed[i].y))
			unionn(find(ed[i].x),find(ed[i].y));
	for (int i=x;i<=m;++i)
		if (ed[i].cl&&find(ed[i].x)!=find(ed[i].y))
			l++,unionn(find(ed[i].x),find(ed[i].y));
	for (int i=1;i<=n;++i) rt[i]=i;
	for (int i=1;i<=x-1;++i)
		if (used[i]&&find(ed[i].x)!=find(ed[i].y))
			unionn(find(ed[i].x),find(ed[i].y));
	for (int i=x;i<=m;++i)
		if (ed[i].cl&&find(ed[i].x)!=find(ed[i].y))
			r++,unionn(find(ed[i].x),find(ed[i].y));
	for (int i=x;i<=m;++i)
		if (!ed[i].cl&&find(ed[i].x)!=find(ed[i].y))
			unionn(find(ed[i].x),find(ed[i].y));
	for (int i=1;i<=n;++i)
		if (find(i)!=find(1))
			return 0;
	return l<=k&&k<=r;
}
int main()
{
	n=read(),m=read(),k=read(),s=read();
	for (int i=1;i<=m;++i)
	{
		ed[i].x=read(),ed[i].y=read(),ed[i].z=read();
		if (ed[i].x==s||ed[i].y==s) ed[i].cl=1;
	}
	if (!check(1))
	{
		puts("nonnondayo");
		return 0;
	}
	sort(ed+1,ed+m+1);
	for (int i=1;i<=m;++i)
		if (!check(i+1))
			ans+=ed[i].z,used[i]=1,k-=ed[i].cl;
	printf("%lld\n",ans);
	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Subtask #1:

score: 0
Time Limit Exceeded

Test #1:

score: 0
Time Limit Exceeded

input:

49277 49276 1 49277
1 2 2000
2 3 3000
2 4 4000
3 5 5000
3 6 6000
4 7 7000
1 8 8000
7 9 9000
1 10 10000
5 11 11000
4 12 12000
3 13 13000
13 14 14000
1 15 15000
7 16 16000
11 17 17000
2 18 18000
10 19 19000
6 20 20000
4 21 21000
17 22 22000
1 23 23000
14 24 24000
4 25 25000
16 26 26000
15 27 27000
9 2...

output:


result:


Subtask #2:

score: 10
Accepted

Test #5:

score: 10
Accepted
time: 1ms
memory: 5432kb

input:

21 20 2 21
1 2 18581
1 3 9620
2 4 4362
1 5 7702
5 6 17435
4 7 11679
3 8 14832
1 9 15073
2 10 6595
5 11 19676
11 12 16943
12 13 5268
5 14 20262
8 15 8192
7 16 12340
7 17 1437
7 18 3064
2 19 10437
12 20 2882
19 21 13483

output:

nonnondayo

result:

ok single line: 'nonnondayo'

Test #6:

score: 0
Accepted
time: 1ms
memory: 5688kb

input:

10 20 4 3
1 2 18247
2 3 9041
2 4 4031
2 5 7363
3 6 17172
1 7 11014
6 8 14781
8 9 15347
8 10 6598
5 9 19331
3 10 16523
10 6 5732
2 3 20357
6 9 8827
10 3 12864
6 3 1551
5 6 3932
3 1 10223
9 3 2296
8 5 13620

output:

54418

result:

ok single line: '54418'

Test #7:

score: 0
Accepted
time: 1ms
memory: 5448kb

input:

10 20 6 10
1 2 18401
2 3 9843
3 4 4219
4 5 7552
4 6 17751
4 7 11318
5 8 14774
8 9 15541
5 10 6928
6 10 19860
10 5 16699
5 8 5937
5 2 20611
1 8 8077
10 1 12386
9 4 1663
9 10 3910
1 9 10401
7 10 2383
2 9 13681

output:

nonnondayo

result:

ok single line: 'nonnondayo'

Test #8:

score: 0
Accepted
time: 1ms
memory: 5704kb

input:

10 20 1 10
1 2 18853
2 3 9034
3 4 4069
3 5 7743
3 6 17122
6 7 11715
2 8 14814
1 9 15011
7 10 6248
6 8 19400
7 3 16354
6 8 5249
7 8 20701
5 10 8079
10 5 12570
7 10 1006
8 3 3814
5 10 10753
5 9 2310
8 6 13123

output:

59951

result:

ok single line: '59951'

Test #9:

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

input:

10 11 3 1
1 2 9407
1 3 7005
1 4 5453
1 5 4585
1 6 8278
1 7 6332
1 8 1415
1 9 3809
1 10 10519
2 6 2507
10 6 11580

output:

nonnondayo

result:

ok single line: 'nonnondayo'

Subtask #3:

score: 15
Accepted

Dependency #2:

100%
Accepted

Test #10:

score: 15
Accepted
time: 163ms
memory: 5684kb

input:

1000 3000 100 10
1 2 2270918
1 3 871400
2 4 1242131
3 5 2307909
5 6 1391239
3 7 1431327
7 8 2501929
5 9 2377716
8 10 612146
5 11 991199
11 12 1810465
10 13 1094558
10 14 2605381
8 15 872336
10 16 2092297
5 17 619719
14 18 1161002
5 19 1828768
10 20 837691
2 21 1787203
3 22 396276
21 23 1371664
16 24...

output:

645739778

result:

ok single line: '645739778'

Test #11:

score: 0
Accepted
time: 172ms
memory: 7728kb

input:

999 3000 200 20
1 2 2801619
1 3 1075541
2 4 1533685
3 5 2847120
2 6 1716689
6 7 1766365
5 8 3087429
4 9 2933519
1 10 755477
4 11 1223969
11 12 2233807
5 13 1350595
12 14 3215789
12 15 1076145
12 16 2581528
1 17 764941
5 18 1433263
12 19 2256409
3 20 1033257
20 21 2205421
11 22 489324
22 23 1692840
2...

output:

833854746

result:

ok single line: '833854746'

Test #12:

score: 0
Accepted
time: 172ms
memory: 7888kb

input:

999 3000 300 20
1 2 9811687
2 3 3764791
2 4 5370818
3 5 9972642
3 6 6014501
1 7 6187455
6 8 10808965
2 9 10272798
9 10 2646297
1 11 4285235
1 12 7821976
2 13 4727798
13 14 11258977
11 15 3768331
1 16 9040806
16 17 2678040
6 18 5018287
5 19 7901529
14 20 3617199
20 21 7721668
20 22 1713474
21 23 5927...

output:

3113047747

result:

ok single line: '3113047747'

Test #13:

score: 0
Accepted
time: 164ms
memory: 7720kb

input:

999 3000 10 20
1 2 9812725
2 3 3765199
3 4 5368570
1 5 9970744
2 6 6012531
5 7 6184148
6 8 10808057
6 9 10272720
4 10 2647288
4 11 4284300
5 12 7824819
4 13 4731348
6 14 11256433
1 15 3771674
6 16 9042651
16 17 2677352
2 18 5019297
2 19 7900432
9 20 3619670
9 21 7725236
20 22 1713962
20 23 5927083
2...

output:

2976768482

result:

ok single line: '2976768482'

Subtask #4:

score: 0
Skipped

Dependency #1:

0%

Subtask #5:

score: 0
Time Limit Exceeded

Test #17:

score: 0
Time Limit Exceeded

input:

49996 50165 184 1
3 2 123052595
4 3 96661399
5 2 21916499
6 3 110026337
7 6 37432710
8 2 38560107
9 8 83209370
10 8 80352229
11 2 88957425
12 7 65449321
13 5 38238243
14 5 90153912
15 11 30810953
16 3 96492912
17 13 112885611
18 15 87190336
19 9 91182003
20 2 107304872
21 6 101440738
22 13 120601711...

output:


result:


Subtask #6:

score: 0
Time Limit Exceeded

Dependency #3:

100%
Accepted

Test #20:

score: 0
Time Limit Exceeded

input:

9991 99999 500 1
1 2 96661103
1 3 21915978
1 4 110026526
1 5 37432238
1 6 38560460
1 7 83209113
1 8 80353115
1 9 88956996
1 10 65449536
1 11 38238621
1 12 90153747
1 13 30810623
1 14 96492948
1 15 112885374
1 16 87190491
1 17 91181949
1 18 107304334
1 19 101440272
1 20 120601968
1 21 122198044
1 22 ...

output:


result:


Subtask #7:

score: 0
Skipped

Dependency #1:

0%