您的位置:首页 > 其它

poj_1105 S-trees

2014-07-24 10:39 155 查看
用数组装就好,不要用树。

#include<stdio.h>
#include<string.h>
#include <iostream>
#include <stdlib.h>
#include <fstream>
using namespace std;
int fuck(int di,int ci){
int ans=1;
for(int i=1;i<=ci;i++)ans*=di;
return ans;
}
int main(){
//ifstream cin("ha.txt");
char stu[20],s;
int n,total,odered[10],luan[10],x_rank[10],t,ans,loop,real_ans[1024],cnt,times=1;
while(cin>>n&&n){
total=fuck(2,n);
int tree[1024],comm[10];
for(int i=0;i<n;i++){cin>>s>>x_rank[i];}
cin.get();
for(int i=0;i<total;i++){s=cin.get();tree[i]=s-'0';}
cin>>t;
cnt=0;
while(t--){
cin.get();
for(int i=0;i<n;i++){s=cin.get();comm[i]=s-'0';}
for(int i=0;i<n;i++){odered[i]=comm[x_rank[i]-1];}
ans=0;
for(int i=0;i<n;i++){
ans+=odered[i]*fuck(2,n-1-i);
}
//cout<<ans<<" ";
real_ans[cnt++]=tree[ans];
}
cout<<"S-Tree #"<<times++<<":"<<endl;
for(int i=0;i<cnt;i++){cout<<real_ans[i];}
cout<<endl<<endl;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: