Submission #1301264

#TimeUsernameProblemLanguageResultExecution timeMemory
1301264Faisal_SaqibŠarenlist (COCI22_sarenlist)C++20
10 / 110
1 ms580 KiB
#include <bits/stdc++.h> using namespace std; #define int long long const int N=70,mod=1e9+7; int d[N][N]; int f(int x) { return ((x*(x-1))/2)%mod; } int powmod(int x,int y) { int ans=1; while(y) { if(y&1)ans=(ans*x)%mod; // cout<<x<<' '<<y<<' '<<ans<<endl; y>>=1; x*=x; x%=mod; } return ans; } int32_t main() { ios::sync_with_stdio(0); cout.tie(0); cin.tie(0); int n,m,k; cin>>n>>m>>k; for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { d[i][j]=1e9*(i!=j); } } for(int i=1;i<n;i++) { int x,y; cin>>x>>y; d[x][y]=1; d[y][x]=1; } for(int m=1;m<=n;m++) { for(int s=1;s<=n;s++) { for(int e=1;e<=n;e++) { d[s][e]=min(d[s][e],d[s][m]+d[m][e]); } } } int tot=powmod(k,n-1),tp=0; while(m--) { int x,y; cin>>x>>y; int t=d[x][y]; tp+=(k*powmod(k,n-1-t))%mod; tp%=mod; } cout<<((tot+mod-tp)%mod)<<endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...