Danh sách cạnh thành ma trận kề
Cho đồ thị vô hướng \(G=<V,E>\) được biểu diễn dưới dạng danh sách cạnh. Hãy viết chương trình thực hiện chuyển đổi biểu diễn đồ thị dưới dạng ma trận kề.
Dòng đầu tiên chứa 2 số nguyên dương n, m là số đỉnh và số cạnh của đồ thị
Dữ liệu vào:
- Dòng đầu ghi số nguyên dương \(n\) và \(m\) là số đỉnh và số cạnh của đồ thị \((1 \le n \le 1000, 1 \le m \le n \times ({n-1})/2) )\)
- \(m\) dòng tiếp theo, mỗi dòng chứa \(2\) số \(u\) và \(v\) biểu diễn cạnh \(u, v\) của đồ thị \((1 \le u,v \le n)\)
Dữ liệu ra:
- Ma trận kề tương ứng của đồ thị
Input
4 3
0 2
1 2
2 3
Output
0 0 1 0
0 0 1 0
1 1 0 1
0 0 1 0
Nhận xét
array array~
Huhu bài khó quó em khum bít làm ạ ƠwƠ, ai giúp em với ạ
code free cho moi nguoi ac <3
include<bits/stdc++.h>
using namespace std; long long n; vector<vector<long long>>mang(1000,vector<long long>(1000)); bool check(long long i ,long long j){ return i>=0 && i<n && j>=0 && j<n; } void dequy(long long i, long long j){ if(!check(i,j)) return; if(mang[i][j]==1){ mang[i][j]=0; dequy(i+1,j); dequy(i-1,j); dequy(i,j+1); dequy(i,j-1); dequy(i+1,j+1); dequy(i+1,j-1); dequy(i-1,j+1); dequy(i-1,j-1); } } int main(){ cin >> n; for(long long i = 0;i<n;i++){ for(long long j = 0;j<n;j++){ cin >> mang[i][j]; } } long long dem = 0; for(long long i = 0;i<n;i++){ for(long long j = 0;j<n;j++){ if(mang[i][j]==1){ dequy(i,j); dem++; } } } cout << dem; return 0; }