求助初赛题
  • 板块灌水区
  • 楼主zljhenry
  • 当前回复0
  • 已保存回复0
  • 发布时间2021/9/12 15:40
  • 上次更新2023/11/4 06:58:23
查看原帖
求助初赛题
363144
zljhenry楼主2021/9/12 15:40

谁能帮我讲讲? (NOIP2000)

#include<bits/stdc++.h>
using namespace std;
int i,j,sp1,sp2,l;
int tree[25][10],q[105][10],d[25];
int main()
{
	for(i=1;i<=14;i++)
		for(j=1;j<=6;j++)
			tree[i][j]=0;
	for(i=1;i<=14;i++)
		tree[i][1]=i;
	tree[1][2]=2;
	tree[1][3]=3;
	tree[1][4]=4;
	tree[2][2]=5;
	tree[2][3]=6;
	tree[3][2]=7;
	tree[3][3]=8;
	tree[4][2]=9;
	tree[4][3]=10;
	tree[4][4]=11;
	tree[7][2]=12;
	tree[7][3]=13;
	tree[13][2]=14;
	sp1=1;sp2=1;
	for(i=1;i<=6;i++)
		q[1][i]=tree[1][i];
	q[1][0]=1;
	while(sp1<=sp2)
	{
		k=q[sp1][0]*i;
		j=2;
		while(q[sp1][j]!=0)
		{
			sp2++;
			q[sp2][0]=1;
			q[sp2][1]=q[sp1][j];
			for(i=2;i<=6;i++)
				q[sp2][i]=tree[q[sp1][j]][i];
			j++;
		}
		sp1++;
	}
	cout<<q[sp2][0]<<endl;
	for(i=0;i<=20;i++)
		d[i]=0;
	for(i=1;i<=sp2;i++)
		d[q[i][0]]=d[q[i][0]]+1;
	int max=d[1];
	for(i=2;i<=20;i++) 
		if(d[i]>max)
			max=d[i];
	cout<<max<<endl;
	return 0;
}
2021/9/12 15:40
加载中...