求,为什么报错
  • 板块灌水区
  • 楼主Igallta
  • 当前回复3
  • 已保存回复3
  • 发布时间2023/12/15 19:48
  • 上次更新2023/12/15 21:29:55
查看原帖
求,为什么报错
813622
Igallta楼主2023/12/15 19:48

第三行报错:[Error] expected primary-expression before 'long'

搜索无果。

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define LL k<<1
#define RR l<<1|1
#define lg log2
#define endl '\n'
const int MAXN=2e5+1;
struct edge {
	int to,next;
} w[MAXN*2];
int h[MAXN],cnt=0,d[MAXN],prt[MAXN],p[MAXN][50],n,m,root;
void AddEdge(int x,int y) {
	w[++cnt].to=y;
	w[cnt].next=h[x];
	h[x]=cnt;
}
void DFS(int x,int deep) {
	d[x]=deep;
	for(int i=h[x]; i; i=w[i].next)
		DFS(w[i].to,deep+1);
}
void Read() {
	int i,x,y;
	cin>>n>>m;
	for(i=1; i<=n-1; i++) {
		cin>>x>>y;
		AddEdge(x,y);
		prt[y]=x;
	}
	root=1;
	while(prt[root]!=0)root=prt[root];//找根结点
}
void ST() {
	int i,j;
	memset(p,-1,sizeof(p));//初始化
	for(i=1; i<=n; i++)p[i][0]=prt[i]; //指向父结点
	for(j=1; (1<<j)<=n; j++)
		for(i=1; i<=n; i++)
			if(p[i][j-1]!=-1)p[i][j]=p[p[i][j-1]][j-1];
}
int LCA(int a,int b) {
	int k,i;
	if(d[a]<d[b])swap(a,b);
	k=int(lg(d[a])/lg(2));
	for(i=k; i>=0; i--)if(d[a]-(1<<i)>=d[b])a=p[a][i];
	if(a==b)return b;
	for(i=k; i>=0; i--)
		if(p[a][i]!=-1&&p[a][i]!=p[b][i]) {
			a=p[a][i];
			b=p[b][i];
		}
	return p[a][0];
}
void Solve() {
	int i,x,y;
	for(i=1; i<=m; i++) {
		cin>>x>>y;
		cout<<LCA(x,y)<<'\n';
	}
}
signed main() {


	return 0;
}
2023/12/15 19:48
加载中...