zoukankan      html  css  js  c++  java
  • 【习题 6-2 UVA

    【链接】 我是链接,点我呀:)
    【题意】

    在这里输入题意

    【题解】

    dfs模拟一下就好。 先预处理一个dfs. 搞出来x叶子节点它的值是什么

    【代码】

    /*
      	1.Shoud it use long long ?
      	2.Have you ever test several sample(at least therr) yourself?
      	3.Can you promise that the solution is right? At least,the main ideal
      	4.use the puts("") or putchar() or printf and such things?
      	5.init the used array or any value?
      	6.use error MAX_VALUE?
    */
    #include <bits/stdc++.h>
    using namespace std;
    
    const int N = 10;
    
    int n,Q;//depth
    int de[N]; 
    int val[N],key[1024],now;
    string KEY;
    	
    void dfs1(int x,int dep){
    	if (dep>n){
    	 	key[x] = KEY[now++] - '0';
    	 	return;
    	}
    	dfs1(x*2,dep+1);
    	dfs1(x*2+1,dep+1);
    }
    
    int dfs2(int x,int dep){
     	if (dep > n){
    		return key[x];
     	}
     	if (val[de[dep]]==0){
     	 	return dfs2(x*2,dep+1);
     	}else {
     	 	return dfs2(x*2+1,dep+1);
     	}
    }
    
    int main(){
    	#ifdef LOCAL_DEFINE
    	    freopen("F:\c++source\rush_in.txt", "r", stdin);
    	#endif
    	ios::sync_with_stdio(0),cin.tie(0);
    	int Kase = 0;
    	while (cin>> n && n){
    	    cout << "S-Tree #" << ++Kase <<':'<<endl;
    		now = 0;
    		for (int i = 1;i <= n;i++){
    	 		string temp;
    	 		cin >> temp;
    	 		de[i] = temp[1]-'0';	
    	 	}
    	 	cin >> KEY;
    
    	 	dfs1(1,1);
    
    	 	cin >> Q;
    	 	for (int i = 1;i <= Q;i++){
    	 	 	string temp;
    	 	 	cin >> temp;
    	 	 	for (int j = 0;j < n;j++)
    	 	 		val[j+1] = temp[j] - '0';
    	 	 	cout << char(dfs2(1,1) + '0');
    	 	}
    	 	cout << endl;
    	 	cout << endl;
    	}
    
    	return 0;
    }
    
  • 相关阅读:
    spring boot(二)web综合开发
    spring boot(一)入门
    shiro中单点登录
    shiro中SSL
    shiro中记住我功能
    spring中集成shiro
    OpenResty
    源代码安全审计
    Mycat读写分离 + 主从复制(Gtid)
    关于ansbile
  • 原文地址:https://www.cnblogs.com/AWCXV/p/7860208.html
Copyright © 2011-2022 走看看