106322024-04-07 14:26:58111Varázserdőcpp17Futási hiba 7/1002.164s478788 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);
	if(count(v.begin(),v.end(),0)!=1)exit(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ÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms1888 KiB
2Elfogadva3ms2020 KiB
3Elfogadva3ms2104 KiB
subtask27/7
4Elfogadva3ms2408 KiB
5Elfogadva4ms3400 KiB
6Elfogadva17ms11652 KiB
7Elfogadva17ms12092 KiB
8Elfogadva1.259s470484 KiB
9Elfogadva1.202s468952 KiB
10Elfogadva1.111s467592 KiB
11Elfogadva1.024s469176 KiB
12Elfogadva972ms474656 KiB
13Elfogadva968ms477816 KiB
subtask30/9
14Futási hiba3ms49224 KiB
15Futási hiba4ms50104 KiB
16Futási hiba75ms83076 KiB
17Futási hiba479ms189600 KiB
18Futási hiba1.547s478788 KiB
19Futási hiba1.041s401832 KiB
20Futási hiba1.027s420396 KiB
subtask40/14
21Hibás válasz3ms70356 KiB
22Hibás válasz3ms70364 KiB
23Hibás válasz3ms70344 KiB
24Futási hiba3ms70348 KiB
subtask50/20
25Futási hiba4ms71028 KiB
26Hibás válasz8ms72848 KiB
27Hibás válasz8ms72220 KiB
28Hibás válasz8ms73004 KiB
29Futási hiba6ms72156 KiB
30Futási hiba6ms72140 KiB
31Hibás válasz8ms72728 KiB
32Hibás válasz8ms72732 KiB
subtask60/50
33Futási hiba13ms77444 KiB
34Futási hiba78ms104868 KiB
35Hibás válasz878ms223436 KiB
36Hibás válasz930ms267960 KiB
37Futási hiba1.098s436748 KiB
38Futási hiba1.103s437572 KiB
39Futási hiba1.09s439916 KiB
40Futási hiba1.092s443324 KiB
41Hibás válasz2.164s322888 KiB