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;
    }
    
  • 相关阅读:
    git 命令
    canva 压缩图片
    压缩图片 待验证
    php 多个图片合并为一张
    解析php做推送服务端实现ios消息推送
    php auth认证
    jdk1.8配置
    Tomcat本地服务器配置
    Markdown段落
    Mrkedown语法
  • 原文地址:https://www.cnblogs.com/AWCXV/p/7860208.html
Copyright © 2011-2022 走看看