侧边栏壁纸
  • 累计撰写 3 篇文章
  • 累计创建 2 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

2025/3/21

hylhyl
2025-03-21 / 0 评论 / 2 点赞 / 26 阅读 / 0 字
#include<bits/stdc++.h>
using namespace std;
struct Node{
	int lson,rson;
}node[25];
int vis[25];
int dfs(int i)
{
	if(i==-1) return 0;
	return 1+max(dfs(node[i].lson),dfs(node[i].rson));
}
int main()
{
	int n;cin>>n;
	for(int i=1;i<=n;i++) 
	{
		node[i].lson=-1;
		node[i].rson=-1;
	}
	for(int i=1;i<n;i++)
	{
		int x,y;cin>>x>>y;
		if(node[x].lson==-1) node[x].lson=y;
		else node[x].rson=y;
		vis[y]=1;
	}
	int root=0;
	for(int i=1;i<=n;i++) if(vis[i]==0) root=i;
	cout<<dfs(root);
	return 0;
} 
#include<bits/stdc++.h>
using namespace std;
struct Node{
	int lson,rson;
}node[105];
void bfs(int i)
{
	queue<int> q;
	q.push(i);
	while(!q.empty())
	{
		int u=q.front();q.pop();
		cout<<u<<" ";
		if(node[u].lson!=-1) q.push(node[u].lson);
		if(node[u].rson!=-1) q.push(node[u].rson);
	}
}
int main()
{
	int n;cin>>n;
	for(int i=1;i<=n;i++)
	{
		int l,r;cin>>l>>r;
		node[i].lson=l;
		node[i].rson=r;
	}
	bfs(1);
	return 0;
}
#include<bits/stdc++.h>
using namespace std;
const int maxn=1005;
const int maxw=1005;
int f[maxn][maxw];//f[i][j]考虑前i物品,容量为j的背包获得的最大价值 
// f[i][j]= max(f[i-1][j],f[i-1][j-w[i]]+v[i])
int v[maxn],w[maxn];
int main()
{
	int n,W;cin>>n>>W;
	for(int i=1;i<=n;i++)
	{
		cin>>v[i];
	}
	for(int i=1;i<=n;i++)
	{
		cin>>w[i];
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=W;j++) 
		{
			f[i][j]=f[i-1][j];
			if(j-w[i]>=0) f[i][j] =max(f[i-1][j],f[i-1][j-w[i]]+v[i]);
		}
	}
	cout<<f[n][W];
}
#include<bits/stdc++.h>
using namespace std;
const int maxn=1005;
int f[maxn];
int find(int x){return x==f[x]?x:f[x]=find(f[x]);}
struct edge{
	int u,v,w;
	bool operator < (const edge& a){return w<a.w;}
};
int main()
{
	vector<edge> e;
	int n;cin>>n;
	for(int i=1;i<=n;i++) f[i]=i;
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
		{
			int w;cin>>w;
			edge temp;
			temp.u=i;temp.v=j;temp.w=w;
			e.push_back(temp);
		}
	sort(e.begin(),e.end());
	long long ans=0;
	for(int i=0;i<e.size();i++)
	{
		int u=e[i].u,v=e[i].v,w=e[i].w;
		if(find(u)==find(v)) continue;
		ans+=w;
		f[find(u)]=find(v);
	}	
	cout<<ans;
}

2

评论区