借鉴了线段数区间操作的思想,只是把一个结点的孩子扩展到了4个,

结点k,四个孩子编号分别为4*k+1,4*k+2,4*k+3,4*K+4,从零开始。

根据层数,确定权值。

#include<cstdio>
#include<cstring> const int maxn = + ;//4^5 + 4^4 + ... + 1 char s[maxn]; int tr[maxn]; int p;
void add(int o)
{
char ch = s[p++];//
if(ch == 'p'&&!tr[o]) {
int no = o<<;
for(int i = ; i <=; i++)
add(no+i);
}
else if(ch == 'f') {
tr[o] = ;
}
} int w[] = {,,,,};
int query(int o,int l)
{
if(l == ) return tr[o];
int ans = ;
if(!tr[o]){
int no = o<<; l++;
for(int i = ; i <=; i++) {
ans += query(no+i,l);
}
}
else {
ans += w[l];
}
return ans;
} int main()
{
// freopen("in.txt","r",stdin);
int T;
scanf("%d",&T);
while(T--) {
memset(tr,,sizeof(tr));
for(int i = ; i < ; i++){
scanf("%s",s);
p = ;
add();
}
printf("There are %d black pixels.\n",query(,));
}
  return 0;
}

uva297 Quadtrees (线段树思想,区间操作)的更多相关文章

  1. POJ2528 线段树的区间操作

    首先应该对该[0,10000000]进行离散化 即先将点集进行排序,然后从小到大缩小其中的间距,使得最后点数不会超过2*n 然后就是线段树操作 只需进行染色,然后最后用nlgn进行一个个查询颜色记录即 ...

  2. CF 787D Legacy(线段树思想构图+最短路)

    D. Legacy time limit per test 2 seconds memory limit per test 256 megabytes input standard input out ...

  3. Codeforces Round #222 (Div. 1) D. Developing Game 线段树有效区间合并

    D. Developing Game   Pavel is going to make a game of his dream. However, he knows that he can't mak ...

  4. hiho一下20周 线段树的区间修改

    线段树的区间修改 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 对于小Ho表现出的对线段树的理解,小Hi表示挺满意的,但是满意就够了么?于是小Hi将问题改了改,又出给了 ...

  5. hdu 1556:Color the ball(线段树,区间更新,经典题)

    Color the ball Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  6. hihoCode 1078 : 线段树的区间修改

    #1078 : 线段树的区间修改 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 对于小Ho表现出的对线段树的理解,小Hi表示挺满意的,但是满意就够了么?于是小Hi将问题 ...

  7. UVA 12436-Rip Van Winkle's Code(线段树的区间更新)

    题意: long long data[250001]; void A( int st, int nd ) { for( int i = st; i \le nd; i++ ) data[i] = da ...

  8. BZOJ 3110 ZJOI 2013 K大数查询 树套树(权值线段树套区间线段树)

    题目大意:有一些位置.这些位置上能够放若干个数字. 如今有两种操作. 1.在区间l到r上加入一个数字x 2.求出l到r上的第k大的数字是什么 思路:这样的题一看就是树套树,关键是怎么套,怎么写.(话说 ...

  9. hihoCoder #1078 : 线段树的区间修改(线段树区间更新板子题)

    #1078 : 线段树的区间修改 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 对于小Ho表现出的对线段树的理解,小Hi表示挺满意的,但是满意就够了么?于是小Hi将问题 ...

随机推荐

  1. JavaScript操作服务器控件之Gridview控件

    1.JavaScript脚本如下: <script language="javascript" type="text/javascript">    ...

  2. C++11之lambda表达式应用

    应用 foreach语句中 #include <time.h> #include <algorithm> using namespace std; void func(int ...

  3. 【转】PHP实现下载与压缩文件的封装与整理

    [转]PHP实现下载与压缩文件的封装与整理    https://mp.weixin.qq.com/s/BUI3QsdNi6Nqu0NhrUL8hQ 一.PHP实现打包zip并下载功能 $file_t ...

  4. 洛谷P3080 [USACO13MAR]牛跑The Cow Run

    P3080 [USACO13MAR]牛跑The Cow Run 题目描述 Farmer John has forgotten to repair a hole in the fence on his ...

  5. json 打印

    JsonObject jsonObj = new JSONObject(); jsonObj.put("success",true); jsonObj.put("msg& ...

  6. 在Centos中安装HustOJ实验记录

    hustoj是目前使用最广泛的刷题平台,自建平台是编程教学中重要一环,教,学,测,反思形成闭合回路.目前利用现有的服务器资源,建成了开高开源code中心,一个刷题系统,六月再建一个私有云,私有云不仅是 ...

  7. Java-GC-标记压缩算法

    标记压缩算法 其分为两个阶段标记阶段,和压缩阶段.其中标记阶段和标记清除算法的标记阶段是一样的. 对压缩算法来说,他的工作就是移动所有的可达对象到堆内存的同一区域中,使它们紧凑的排列在一起,从而将所有 ...

  8. null is not an object (evaluating 'Picker._init')

    安装完react-native-picker后,init出现报错,其实是原生配置还没完全生效,重启项目就可以了

  9. NET Core & Entity Framework Core

    ABP 教程文档 1-1 手把手引进门之 ASP.NET Core & Entity Framework Core(官方教程翻译版 版本3.2.5)   本文是ABP官方文档翻译版,翻译基于 ...

  10. Cache中间件和缓存降级

    Cache中间件和缓存降级 1.前言 surging受到不少.net同学的青睐,也提了不少问题,提的最多的是什么时候集成API 网关,在这里回答大家最近已经开始着手研发,应该在1,2个月内会有个初版A ...