CSP考试 2015年03月第4题 C语言实现
2016-04-07 07:44
405 查看
#include <stdio.h> //找叶子 main() { //int NUM1=4; //int NUM2=4; int NUM1; int NUM2; scanf("%d",&NUM1); scanf("%d",&NUM2); int NUM=NUM1+NUM2; int a[NUM+1]; a[0]=-1; a[1]=0; int i; for(i=2;i<=NUM;i++) { scanf("%d",&a[i]); } /* a[2]=1; a[3]=2; a[4]=2; a[5]=3; a[6]=4; a[7]=4; a[8]=4;*/ //关于叶子的信息 int b[NUM+1]; int j; for(i=0;i<(NUM+1);i++) { b[i]=-1; } for(i=0;i<(NUM+1);i++) { //printf("a[%d]=%d\n",i,a[i]); //printf("b[%d]=%d\n",i,b[i]); } //printf("\n"); /* for(i=0;i<(NUM+1);i++) { //printf("a[%d]=%d\n",i,a[i]); printf("b[%d]=%d\n",i,b[i]); }*/ for(i=0;i<(NUM+1);i++) { for(j=0;j<(NUM+1);j++) { if(a[j]==i) { b[i]=0;//不是叶子 } } } for(i=0;i<(NUM+1);i++) { //printf("a[%d]=%d\n",i,a[i]); //printf("b[%d]=%d\n",i,b[i]); } //给的输入已排好顺序 //层数 int e[NUM+1]; for(i=0;i<=NUM;i++) { e[i]=-1; } e[1]=1; for(i=1;i<=NUM;i++) { //for(j=1;j<=NUM1;j++) { if(e[a[i]]!=-1) { e[i]=e[a[i]]+1; // break; } } } //printf("\n"); for(i=0;i<(NUM+1);i++) { //printf("a[%d]=%d\n",i,a[i]); //printf("e[%d]=%d\n",i,e[i]); } //仅限叶子的比较 int hello(int i,int j) { int f[NUM+1]; int k; for(k=0;k<=NUM;k++) { f[k]=-1; } int h; int temp; for(h=i;a[h]!=-1;h=a[h]) { f[h]=-2; } for(h=j;a[h]!=-1;h=a[h]) { if(f[h]==-2) { f[h]=-3; temp=e[h]; break; } f[h]=-2; } //printf("\n"); for(k=0;k<(NUM+1);k++) { //printf("a[%d]=%d\n",i,a[i]); //printf("f[%d]=%d\n",k,f[k]); } //printf("temp=%d\n",temp); temp=e[i]+e[j]-2*temp; //printf("temp=%d\n",temp); return temp; } hello(5,6); int kaoshi=0; for(i=0;i<(NUM+1);i++) { if(b[i]==0)//不是叶子 { continue; } for(j=0;j<(NUM+1);j++) { if(b[j]==0) { continue; } int jg=hello(i,j); if(kaoshi<jg) { kaoshi=jg; } } } printf("%d\n",kaoshi); }
相关文章推荐
- CSP考试 2015年03月第5题 C语言实现
- C/C++不同文件夹下包含头文件的方法及#include的使用
- C++ 解析Json——jsoncpp
- 论C++的多样性
- C++设计模式<一>:简介
- 屌丝的常用排序-----two
- C++第3次作业
- C语言单链表实现
- C语言 二级指针内存模型①
- C++作业1
- 解析XML格式的配置文件
- 编码的法则:c++程序员不可不知的101条经验
- C语言“亲密数”问题
- C++实验2-1
- [C++]const指针和指向const的指针
- c++智能指针的简单实现
- 值得推荐的C/C++框架和库 (真的很强大)
- [C++]C++语言类成员变量初始化总结
- C++重要的几个概念
- 在VS2015中用C++创建DLL并用C++调用且同时实现对DLL的调试