http://acm.hdu.edu.cn/showproblem.php?pid=5057

分块,保存每个块中每位对应数字的和,复杂的是getmum,左右下标所在的块不能直接读取block数组,要重新自己计算。

#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std; int a[],belong[],L[],R[],block[][][],n,m;
int ten[] = {,,,,,,,,,,}; void build()
{
int sizee = sqrt(n);
int num = n/sizee;
if(n%sizee) num++;
for(int i = ;i <= num;i++)
{
L[i] = (i-)*sizee+;
R[i] = i*sizee;
}
for(int i = ;i <= n;i++) belong[i] = (i-)/sizee+;
for(int i = ;i <= n;i++)
{
int temp = a[i];
for(int j = ;j <= ;j++)
{
block[belong[i]][j][temp%]++;
temp /= ;
}
}
} int getnum(int l,int r,int d,int p)
{
int ans = ;
if(belong[l] == belong[r])
{
for(int i = l;i <= r;i++)
{
if((a[i]/ten[d])% == p) ans++;
}
return ans;
} for(int i = belong[l]+;i < belong[r];i++) ans += block[i][d][p];
for(int i = l;i <= R[belong[l]];i++)
{
if((a[i]/ten[d])% == p) ans++;
}
for(int i = L[belong[r]];i <= r;i++)
{
if((a[i]/ten[d])% == p) ans++;
}
return ans;
} void update(int x,int y)
{
for(int i = ;i <= ;i++)
{
block[belong[x]][i][a[x]%]--;
a[x] /= ;
}
a[x] = y;
for(int i = ;i <= ;i++)
{
block[belong[x]][i][y%]++;
y /= ;
}
} int main()
{
int T;
scanf("%d",&T);
while(T--)
{
memset(block,,sizeof(block));
scanf("%d%d",&n,&m);
for(int i = ;i <= n;i++) scanf("%d",&a[i]);
build();
char s[];
while(m--)
{
scanf("%s",s);
if(s[] == 'S')
{
int x,y;
scanf("%d%d",&x,&y);
update(x,y);
}
else
{
int l,r,d,p;
scanf("%d%d%d%d",&l,&r,&d,&p);
printf("%d\n",getnum(l,r,d,p));
}
}
}
return ;
}

HDU_5057_分块的更多相关文章

  1. PHP搭建大文件切割分块上传功能

    背景 在网站开发中,文件上传是很常见的一个功能.相信很多人都会遇到这种情况,想传一个文件上去,然后网页提示"该文件过大".因为一般情况下,我们都需要对上传的文件大小做限制,防止出现 ...

  2. POJ2104 K-th Number [分块做法]

    传送:主席树做法http://www.cnblogs.com/candy99/p/6160704.html 做那倒带修改的主席树时就发现分块可以做,然后就试了试 思想和教主的魔法差不多,只不过那个是求 ...

  3. HDU 4467 分块

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4467 题意:给定n个点m条边的无向图,点被染色(黑0/白1),边带边权.然后q个询问.询问分为两种: ...

  4. 2016 ACM/ICPC Asia Regional Dalian Online 1010 Weak Pair dfs序+分块

    Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total Submissio ...

  5. CC countari & 分块+FFT

    题意: 求一个序列中顺序的长度为3的等差数列. SOL: 对于这种计数问题都是用个数的卷积来进行统计.然而对于这个题有顺序的限制,不好直接统计,于是竟然可以分块?惊为天人... 考虑分块以后的序列: ...

  6. bzoj2002弹(dan)飞绵羊 分块水过

    据说是道lct求深度的题 但是在小猫大的指点下用分块就n^1.5水过了 = =数据忘记加强系列 代码极其不美观,原因是一开始是听小猫大讲的题意,还以为是弹到最前面... #include <cs ...

  7. C语言两种查找方式(分块查找,二分法)

    二分法(必须要保证数据是有序排列的):   分块查找(数据有如下特点:块间有序,块内无序):    

  8. [New Portal]Windows Azure Storage (14) 使用Azure Blob的PutBlock方法,实现文件的分块、离线上传

    <Windows Azure Platform 系列文章目录> 相关内容 Windows Azure Platform (二十二) Windows Azure Storage Servic ...

  9. BZOJ 3343: 教主的魔法 [分块]【学习笔记】

    3343: 教主的魔法 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 1172  Solved: 526[Submit][Status][Discus ...

随机推荐

  1. 用实例理解设计模式——代理模式(Python版)

    代理模式:为其他对象提供一种代理以控制对这个对象的访问. 在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用. 代理模式分为: 静态代理 动态代 ...

  2. 小小知识点(三十八)MPSK和MQAM调制的实现——利用IQ调制

    IQ调制的原理 (一)调制基本原理 (二)调制基本原理 利用IQ调制实现MPSK(QPSK 8PSK BPSK)和MQAM(16QAM 64QAM)调制     (一)利用IQ调制实现QPSK调制   ...

  3. Linux 学习笔记 6 搭建nginx 实现二级域名访问

    前言 在前一节的内容里面,我们学习了如何使用yum 包管理工具来安装我们需要的软件,这节内容,通过搭建Nginx 反向代理服务器,以及学习服务的配置等内容. NGINX Nginx是一款轻量级的Web ...

  4. php改变时间的方法

    1. strtotime date("Y-m-d",strtotime('+1day')) 2. mktime date("Y-m-d",mktime(0,0, ...

  5. 简单的c语言程序

    我猜大部分人第一门掌握的语言是c语言吧(我第一门学的是python). 在接下来的文章里我会逐步的介绍有关自己对c语言的理解,希望对一些小伙伴有帮助,有哪里有错误希望大佬指出. 首先这是第一个c语言程 ...

  6. 一个动态扩展表格控件列和行的 jQuery 插件

    一个动态扩展表格控件列和行的 jQuery 插件 不过这并不影响使用鸭! 看这里:https://github.com/zhuwansu/table-ext.js 一个简单的示范 html <t ...

  7. 与drawable的较量(一)

    前言 在android ui中drawable 是一个非常关键的要点,因为我们现在使用的花里胡哨的APP,都在胡里花哨的drawable 构建的. drawable,英文翻译为可拖拽的.说白了就是自己 ...

  8. cf - 01串的问题

    One beautiful July morning a terrible thing happened in Mainframe: a mean virus Megabyte somehow got ...

  9. vue学习笔记1:el 与 data

    一.vue介绍 vue是目前三大主流框架之一(React.Angular.Vue) vue特点: 易用 灵活 高效 vue官网:官网链接 二,知识点 vue实例选项: el 注:不能 让el直接管理h ...

  10. kafka 中 zookeeper 具体是做什么的?

    zookeeper 是 kafka 不可分割的一部分,可见其重要程度,所以我们有必要了解一下 zookeeper 在 kafka 中的具体工作内容. 而且,这也是面试时经常问的. zookeeper ...