zoukankan      html  css  js  c++  java
  • uva297(quadtree)

    给我们两棵quadtree的前序遍历,要我吗求原来32*32的矩阵有多少个位置是黑的

    quardtree是将区域划分为相等的4个子空间,然后再递归划分这4个子空间,知道满足条件后终止划分

     这题的终止条件是遇到黑色或者白色的结点停止递归

    至于为什么一个前序遍历就能建树,是因为结点颜色的缘故,所以能够知道何时递归返回。所以能够建立一课树

    都没什么空敲java代码,反正C++语法都很熟悉了,就用java刷题吧,刷题,学java两不误

     1 import java.util.Scanner;
     2 
     3 
     4 public class Main {
     5     static Scanner cin = new Scanner(System.in);
     6     final static int LEN = 32;
     7     static int ans = 0;
     8     static String str;
     9     static int p;
    10     static int [][] mat = new int [LEN][LEN];
    11     public static void dfs(int r, int c, int w){//(r,c)是左上角
    12         
    13         char ch = str.charAt(p++);
    14         if(ch=='p'){
    15             dfs(r,c+w/2,w/2);//对于图中区域1部分的, 
    16             dfs(r,c,w/2);//对于图中区域2部分的, 
    17             dfs(r+w/2,c,w/2);//对于图中区域3部分的, 
    18             dfs(r+w/2,c+w/2,w/2);//对于图中区域4部分的, 
    19         }
    20         else if(ch=='f'){//如果遇到黑色的结点,就填充矩形
    21             for(int i=r; i<r+w; ++i)
    22                 for(int j=c; j<c+w; ++j)
    23                 if(mat[i][j]==0){//因为是两棵树合并,所以有可能重复填充,所以只有填充0的时候计算ans++
    24                     mat[i][j] = 1;
    25                     ans++;
    26                 }
    27         }
    28     }
    29     public static void init(){
    30         ans = 0;
    31         for(int i=0; i<LEN; ++i)
    32             for(int j=0; j<LEN; ++j)
    33                 mat[i][j] = 0;
    34     }
    35     public static void main(String[] args) {
    36         int n;
    37         
    38         n = cin.nextInt();
    39         cin.nextLine();
    40         for(int i=0; i<n; ++i){
    41             init();
    42             p = 0;
    43             str = cin.nextLine();
    44             dfs(0,0,LEN);
    45             p = 0;
    46             str = cin.nextLine();
    47             dfs(0,0,LEN);
    48             System.out.println("There are "+ans+" black pixels.");
    49         }
    50     }
    51 
    52 }
    View Code
  • 相关阅读:
    Nginx日志
    Aapche日志
    IIS日志
    pikachu 不安全的url重定向
    pikachu php反序列化、XXE、SSRF
    pikachu 越权漏洞
    pikachu 不安全的文件下载和上传
    pikachu Files Inclusion(文件包含漏洞)
    pikachu RCE部分(远程命令、代码执行漏洞)
    pikachu SQL部分(下)
  • 原文地址:https://www.cnblogs.com/justPassBy/p/4457301.html
Copyright © 2011-2022 走看看