图论
基本实现
#include <cstdio>
struct node{
int to,next,val;
}edge[N];
void add(int x,int y,int val1){
e[cnt]=(node){y,head[x],val1};
head[x]=cnt++;
}
memset(head,-1,sizeof(head));
cnt=0;
for(int i=head[x];i!=-1;i=edge[i].next){
int to1=edge[i].to;
//do something
}
My code
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#define N 5005
#define M 20005
using namespace std;
int cnt=0,head[N];
struct node{
int to,next,val;
}edge[N];
void add(int x,int y,int val1){
edge[++cnt].next=head[x];
edge[cnt].to=y;
edge[cnt].val=val1;
head[x]=cnt;
}
int main(){
}
memset(head,-1,sizeof(head));
for(int i=head[x];i!=-1;i=edge[i].next){
int to1=edge[i].to;
//do something
}