Tin học Chương trình “Tìm kiếm theo chiều sâu” 24/07/2021 By Cora Chương trình “Tìm kiếm theo chiều sâu”
#include<bits/stdc++.h>using namespace std;int n,m,u,v,c[1000][1000],nho;bool tick[10000],a[1000][1000];void DFS(int u){ stack<int>st; if(tick[u]==true) { st.push(u);tick[u]=false; while(!st.empty()) { v=st.top();st.pop();//cout<<v<<” “; for(int i=n;i>=1;i–) { if (a[i][v]==true && tick[i]==true) { st.push(i); tick[i]=false; c[i][v]+=c[nho][]; } } nho=v; } }}int main(){ cin>>n>>m; for(int i=1;i<n;i++) { cin>>u>>v>>c[u][v]; a[u][v]=true; a[v][u]=true; } memset(tick,true,sizeof(tick)); for(int j=1;j<=m;j++) DFS(j); for(int j=1;j<=n;j++) for(int i=1;i<=n;i++) cout<<j<<” “<<i<<” “<<c[j][i]<<endl;} Trả lời