BZOJ 4216 Pig 分块乱搞
题意:链接
方法:分块以节约空间。
解析:
这题坑的地方就是他只有3M的内存限制,如果我们开longlong前缀和是必死的。
所以考虑缩小这个long long数组的大小。
然后想到分块
不妨以15为大小进行分块,其实不T再大一点也行,但是算内存的话15是差不多的吧。
然后记录每个块内的和,然后询问的时候整块直接拿,非整块暴力枚举,顶多30个点。
所以时间上能过,然后内存上也就2.6MB左右,可以过。
但是有个问题啊,千万别打using namespace std;
这个运行自动申请700kb内存,太坑辣!
代码:
#include <cstdio>
#include <cstring>
#include <algorithm>
#define N 500005
#define M 33335
#define K 16
typedef long long ll;
int a[N];
ll sum[M];
int n,m,jd,blockl,blockr,cntblock,l,r;
ll ans;
void calc(int l,int r)
{blockl=l>>4;blockr=r>>4;ans+=sum[blockr-1]-sum[blockl];for(int i=l;i>>4==blockl&&i>0&&i<=n;i++){ans+=a[i];}for(int i=r;i>>4==blockr&&i>0&&i<=n;i--){ans+=a[i];}
}
int main()
{scanf("%d%d%d",&n,&m,&jd);for(int i=1;i<=n;i++){scanf("%d",&a[i]);sum[i>>4]+=a[i];}cntblock=n>>4;for(int i=1;i<=cntblock;i++)sum[i]+=sum[i-1];for(int i=1;i<=m;i++){if(ans<0)ans=-ans;scanf("%d%d",&l,&r);if(jd){l=(l^ans)%n+1;r=(r^ans)%n+1;if(l>r)l^=r^=l^=r;}ans=0;calc(l,r);printf("%lld\n",ans);}
}
BZOJ 4216 Pig 分块乱搞相关推荐
- 【BZOJ4035】数组游戏,博弈论+分块乱搞
传送门 思路: 起初思路挺好,后来就比较奇怪的一道题目 玩法很像SDOI2016R2的硬币游戏,不过那个题目直接暴力SG就可以过,本题直接套规则只有30分: 稍微优化一下,不枚举k,直接每次xor一下 ...
- bzoj 2217 [Poi2011]Lollipop 乱搞 贪心
2217: [Poi2011]Lollipop Time Limit: 15 Sec Memory Limit: 64 MBSec Special Judge Submit: 383 Solve ...
- bzoj 1050: [HAOI2006]旅行comf(codevs.cn 1001 舒适的路线) 快排+并查集乱搞
没用的话:好像很久没发博客了,主要是懒太蒟找不到水题.我绝对没弃坑...^_^ 还用些话:本文为博主原创文章,若转载请注明原网址和作者. 进入正题: 先pa网址: bzoj :http://www.l ...
- 【BZOJ】 2049 SDOI洞穴探险 【乱搞】
不知怎么回事我的电脑上BZOJ挂了,鞠大神的oj也挂了..... 本来要用LCT,但书上说乱搞就不T,我之前却T了,于是我感叹BZOJ数据质量真好...然后就没有然后了 直到今天我又看到一个神犇说,乱 ...
- Bzoj 1926: [Sdoi2010]粟粟的书架(二分答案+乱搞+主席树)
1926: [Sdoi2010]粟粟的书架 Time Limit: 30 Sec Memory Limit: 552 MB Description 幸福幼儿园 B29 班的粟粟是一个聪明机灵.乖巧可爱 ...
- BZOJ 1124 [POI2008]枪战Maf 贪心+乱搞
题意:略. 方法:贪心+乱搞. 解析: 今天做的题里面最难的了- 分连通块进行考虑. 一个连通块最多死多少呢? 一个点 -> 死一个 一个环 -> 死环上点个数-1个 一个环加上内向树 - ...
- 【BZOJ-3578】GTY的人类基因组计划2 set + map + Hash 乱搞
3578: GTY的人类基因组计划2 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 367 Solved: 159 [Submit][Status ...
- BZOJ4401:块的计数(乱搞)
Description 小Y最近从同学那里听说了一个十分牛B的高级数据结构--块状树.听说这种数据结构能在sqrt(N)的时间内维护树上的各种信息,十分的高效.当然,无聊的小Y对这种事情毫无兴趣,只是 ...
- hash进阶:使用字符串hash乱搞的姿势
前言 此文主要介绍hash的各种乱搞方法,hash入门请参照我之前这篇文章 不好意思hash真的可以为所欲为 在开头先放一下题表(其实就是我题解中的hash题目qwq) 查询子串hash值 必备的入门 ...
最新文章
- linux打开应用程序的命令,Windows环境下如何通过命令打开程序!
- mysql 体系结构不匹配_指定的DSN包含驱动程序和应用程序之间的体系结构不匹配...
- ECCV 2020 亮点摘要(上)
- python 完全面向对象_Python面向对象
- css 的小细节,小总结
- EasyExcel(笔记)
- 数据结构树4-二叉搜索树2
- C++ 名字空间详解
- java运行时异常的特点是什么_java异常详解
- 大道至简——第二章读后感
- mysql8.0和phpmyadmin_MySQL 8.0上的phpMyAdmin?mysql-问答-阿里云开发者社区-阿里云
- web前端开发技术的优化策略
- au计算机内录音乐,win10 audition怎么内录_win10 audition如何录制声音
- ZZNU-正约数之和(DP)
- 记第一次实战靶场的经验
- 自然语言生成之n-gram
- java 树结构_Java通用tree树形结构
- 数据结构翻转课堂答疑实录——概述
- Java创建图片并绘图
- Python Pandas读取文件