可以用的链式前向星……模板
啊 u开头,没有提街??
算了
看看题意:
读入n个点,m条边,以及flag,
若flag==1则图有向,否则无向。
对每个点输出它的每一条边。
作为人类,我懂了
安排AC
#include<bits/stdc++.h>
using namespace std;
const int N=4000010;
long long n,m,f,cnt,h[N];
struct note{
int next,w,to;
}e[N];
void add(int a,int b,int c){
cnt++;
e[cnt].to=b;e[cnt].w=c;e[cnt].next=h[a];
h[a]=cnt;
}
int main(){
cin>>n>>m>>f;
for(int i=1;i<=m;i++){
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
add(a,b,c);
if(f==0){
add(b,a,c);
}
}
//输出
for(int i=1;i<=n;i++){
int q=i;
for(int k=h[q];k;k=e[k].next) {
printf("%d %d %d\n",q,e[k].to,e[k].w);
}
}
return 0;
}
怕和谐??
超阴间亚航班
#include<bits/stdc++.h>
using namespace std;long long n,m,f,cnt,h[4000010];struct note{int next,w,to;}e[4000010];void add(int a,int b,int c){cnt++;e[cnt].to=b;e[cnt].w=c;e[cnt].next=h[a];h[a]=cnt;}int main(){cin>>n>>m>>f;for(int i=1;i<=m;i++){int a,b,c;scanf("%d%d%d",&a,&b,&c);add(a,b,c);if(f==0){add(b,a,c);}}for(int i=1;i<=n;i++){int q=i; for(int k=h[q];k;k=e[k].next) {printf("%d %d %d\n",q,e[k].to,e[k].w);}}return 0;}
“链式前向星”是空间效率最高的存储方法,因为它用静态数组模拟邻接表,没有任何浪费。
链式前向星的优点是存储效率高、程序简单、能存储重边;缺点是不方便做删除操作。
赠送万二志愿: