10631 2024. 04. 07 14:24:23 111 Varázserdő cpp17 Hibás válasz 7/100 3.368s 504188 KiB
#include<bits/stdc++.h>
using namespace std;

#define int long long

#define MOD 1000000007

signed main(){
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	int N,M;
	cin>>N>>M;
	vector<vector<pair<int,int>>>g(N+1);
	vector<tuple<int,int,int>>e(M);
	for(int i=0;i<M;i++){
		int a,b,c;
		cin>>a>>b>>c;
		e[i]={c,a,b};
	}
	sort(e.rbegin(),e.rend());
	for(int i=0;i<M;i++){
		auto[c,a,b]=e[i];
		g[a].emplace_back(b,c);
		g[b].emplace_back(a,c);
	}
	vector<int>v(N+1);
	vector<unordered_map<int,int>>w(N+1);
	auto dfs=[&](auto self,int i)->void{
		for(auto[j,c]:g[i]){
			if(v[j]){
				continue;
			}
			v[j]=v[i]+1;
			self(self,j);
			w[i][c]+=w[j][c+1]+1;
			w[i][c]%=MOD;
		}
	};
	v[1]=1;
	dfs(dfs,1);
	auto dfs2=[&](auto self,int i)->void{
		for(auto[j,c]:g[i]){
			if(v[j]){
				w[i][c]+=w[j][c+1]+1;
				w[i][c]%=MOD;
				continue;
			}
			v[j]=v[i]+1;
			self(self,j);
		}
	};
	fill(v.begin(),v.end(),0);
	v[1]=1;
	dfs2(dfs2,1);
	int ans=0;
	for(int i=1;i<=N;i++){
		for(auto[x,y]:w[i]){
			ans+=y;
			ans%=MOD;
		}
	}
	ans-=M;
	cout<<ans<<'\n';
	return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
subtask1 0/0
1 Elfogadva 3ms 1892 KiB
2 Elfogadva 3ms 2088 KiB
3 Elfogadva 3ms 2304 KiB
subtask2 7/7
4 Elfogadva 3ms 2432 KiB
5 Elfogadva 4ms 3516 KiB
6 Elfogadva 17ms 11492 KiB
7 Elfogadva 17ms 12248 KiB
8 Elfogadva 1.263s 470488 KiB
9 Elfogadva 994ms 469444 KiB
10 Elfogadva 1.12s 467884 KiB
11 Elfogadva 865ms 469716 KiB
12 Elfogadva 975ms 475048 KiB
13 Elfogadva 964ms 477812 KiB
subtask3 0/9
14 Hibás válasz 3ms 49264 KiB
15 Hibás válasz 4ms 49920 KiB
16 Hibás válasz 83ms 82632 KiB
17 Hibás válasz 823ms 202528 KiB
18 Hibás válasz 3.368s 504188 KiB
19 Hibás válasz 1.656s 413636 KiB
20 Hibás válasz 1.634s 434424 KiB
subtask4 0/14
21 Hibás válasz 3ms 45220 KiB
22 Hibás válasz 3ms 45496 KiB
23 Hibás válasz 3ms 45364 KiB
24 Hibás válasz 3ms 45368 KiB
subtask5 0/20
25 Hibás válasz 4ms 46368 KiB
26 Hibás válasz 8ms 48280 KiB
27 Hibás válasz 8ms 47748 KiB
28 Hibás válasz 8ms 48580 KiB
29 Hibás válasz 8ms 48412 KiB
30 Hibás válasz 8ms 48264 KiB
31 Hibás válasz 8ms 48156 KiB
32 Hibás válasz 8ms 48048 KiB
subtask6 0/50
33 Hibás válasz 19ms 54032 KiB
34 Hibás válasz 79ms 79996 KiB
35 Hibás válasz 870ms 198796 KiB
36 Hibás válasz 879ms 243672 KiB
37 Hibás válasz 2.02s 475036 KiB
38 Hibás válasz 2.198s 485692 KiB
39 Hibás válasz 2.568s 501688 KiB
40 Hibás válasz 2.94s 495164 KiB
41 Hibás válasz 1.662s 284444 KiB