为什么我的printf("ss %d %d\n",st[i][0],val[i]);会报错??显示invalid operands of types ‘int’ and ‘const char [2]’ to binary ‘operator<<’?
//kruska找最大生成树(保证所经过权值最大)的最小边
#include<bits/stdc++.h>
using namespace std;
#define N 20100
#define ll long long
struct node
{
int v,u,w;
}e[N];
struct leaf
{
int u,v,w;
}tr[N*2];
int cnt=0,n,m,q;
int h[N],par[N],dis[N];
int dep[N],st[N][20],val[N];//lca
bool cmp(node a,node b)//排序的比较都是bool
{
return a.w>b.w;
}
void add(int u,int v,int w)
{
cnt++;
tr[cnt].v=v;
tr[cnt].w=w;
tr[cnt].u=h[u];
h[u]=cnt;
}
void dfs(int x,int f)
{
dep[x]=dep[f]+1;
for(int i=1;1<<i<=dep[x];i++)
st[x][i]=st[st[x][i-1]][i-1];
for(int i=h[x];i;i=tr[i].u)//树的边
{
int v=tr[i].v;
if(v!=f)
{
val[v]=tr[i].w;
st[v][0]=x;
dfs(v,x);
}
}
}
int main()
{
cin>>n>>m;
for(int i=1;i<=m;i++)
cin>>e[i].u>>e[i].v>>e[i].w;
cin>>q;
for(int i=1;i<=n;i++)
{
if(find(i)==i)//i为树根
{
st[i][0]=i;
dfs(i,i);//因为可能有多棵树,所以for循环枚举一遍
}
}//初始化!!!
for(int i=1;i<=n;i++)
printf("ss %d %d\n",st[i][0],val[i]);
cout<<"\n";
return 0;
}