cin>>name_b;
if(ch=='e'||ch=='d') {
name_a.swap(name_b);//or swap(name_a,name_b) in ,but former is better. }
// cout< if(relation==\ { vector if(it->name==name_b) break; } int level_tmp=it->level; if(it!=family_tree.end()) ++it; bool flag=1; while(it!=family_tree.end()&&it->level>level_tmp) { if(it->name==name_a&&it->level==level_tmp+2) { cout<<\ flag=0; break; } ++it; } if(flag) cout<<\ } else if(relation==\ { vector if(it->name==name_a) break; } int level_tmp=it->level; if(it!=family_tree.end()) ++it; bool flag=1; while(it!=family_tree.end()&&it->level>level_tmp) { if(it->name==name_b) { cout<<\ flag=0; break; } ++it; } if(flag) cout<<\ } else { vector if(it->name==name_a) break; } int level_tmp=it->level; vector while(it!=family_tree.end()&&it->level>=level_tmp) { if(it->name==name_b&&it->level==level_tmp) { cout<<\ flag=0; break; } ++it; } if(flag) { if(it_tmp!=family_tree.begin()) --it_tmp; while(it_tmp!=family_tree.begin()&&it_tmp->level>=level_tmp) { if(it_tmp->name==name_b&&it_tmp->level==level_tmp) { cout<<\ flag=0; break; } --it_tmp; } } if(flag) cout<<\ } } } D 航空公司VIP客户查询(25) 源码: #include #include #include #include #include #include #include using namespace std; typedef long int lld;//long int #define rot(v) (((v)>>3)|(((v)&7)<<9)) const int MAX=110000; const int MOD=100003; const int INF=1000000000; struct Node { int a,b; char x; int mile,next; }node[MAX]; int head[MOD],E; char buf[22]; int chg(char x) { if(x=='x')return 10; return x-'0'; } int fun(char s[],int &a,int &b,char &x) { int ret=0,i; int tmp; a=b=0; for(i=0;i<9;i++) { tmp=s[i]-'0'; a=a*10+tmp;//记录没取余数的数值 ret=ret*10+tmp; } ret%=MOD; for(;i<17;i++) { tmp=s[i]-'0'; b=b*10+tmp;//记录后面没取余数的数值 ret=(ret*10+tmp)%MOD; } x=s[i];//记录最后一位 return (ret*100+chg(s[i]))%MOD;//返回取余数的数值 } void ins(char s[],int mile) { int a,b; char x; int h=fun(s,a,b,x); int i; //发生冲突时的处理 for(i=head[h];i!=-1;i=node[i].next)//head 全局变量 { if(node[i].x==x&&node[i].a==a&&node[i].b==b) { node[i].mile+=mile; return ; }