BZOJ 3809Gty的二逼妹子序列 解题报告+data marker

--BZOJ
http://www.lydsy.com/JudgeOnline/problem.php?id=3809
考虑对l,r跑莫队,对一组维护美丽度出现次数的桶修改,
然后把桶序列用分块维护查询
然后是吐槽:
内存28M,哦,这个题居然卡内存。。。。。
卡内存!!!
然后我就为本校的权限号贡献了三次MLE......
代码:
#include<cstdio>
#include<cmath>
#include<algorithm>
using std::sort;
struct ss{
int l,r,a,b,num;
}x[];
int n,m,cut;
int tong[];
int id[];
int mark[];
int a[];
int ans[];
bool cmp(ss a,ss b){
if(id[a.l]==id[b.l])
return a.r<b.r;
return id[a.l]<id[b.l];
}
inline void in(int &ans)
{
ans=;bool p=false;char ch=getchar();
while((ch>'' || ch<'')&&ch!='-') ch=getchar();
if(ch=='-') p=true,ch=getchar();
while(ch<=''&&ch>='') ans=ans*+ch-'',ch=getchar();
if(p) ans=-ans;
}
void modui();
int fin_brick(int l,int r);
int main()
{
int i,j,k;
in(n),in(m);
cut=(int)sqrt(n);
if(cut*cut<n)cut++;
for(i=;i<=n;i++)
in(a[i]);
for(i=;i<=m;i++)
in(x[i].l),in(x[i].r),in(x[i].a),in(x[i].b),x[i].num=i;
for(i=;i<=n;i++)
id[i]=i/cut;
sort(x+,x+m+,cmp);
modui();
for(i=;i<=m;i++)
printf("%d\n",ans[i]);
return ;
}
void modui(){
int l_p=x[].l,r_p=x[].l-,i;
for(i=;i<=m;i++){
while(r_p<x[i].r){
r_p++;
if(!tong[a[r_p]])
mark[a[r_p]/cut]++;
tong[a[r_p]]++;
}
while(r_p>x[i].r){
tong[a[r_p]]--;
if(!tong[a[r_p]])
mark[a[r_p]/cut]--;
r_p--;
}
while(l_p>x[i].l){
l_p--;
if(!tong[a[l_p]])
mark[a[l_p]/cut]++;
tong[a[l_p]]++;
}
while(l_p<x[i].l){
tong[a[l_p]]--;
if(!tong[a[l_p]])
mark[a[l_p]/cut]--;
l_p++;
}
ans[x[i].num]=fin_brick(x[i].a,x[i].b);
}
}
int fin_brick(int l,int r){
int b_l=l/cut,b_r=r/cut,ll=l%cut,rr=r%cut;
int i,j,ans=;
if(b_l==b_r){
for(i=l;i<=r;i++)
if(tong[i])
ans++;
return ans;
}
for(i=ll,j=l;i<=cut-;i++,j++)
if(tong[j])
ans++;
for(i=rr,j=r;i>=;i--,j--)
if(tong[j])
ans++;
b_l++;b_r--;
for(i=b_l;i<=b_r;i++)
ans+=mark[i];
return ans;
}
#include<cstdio>
#include<cstdlib>
#include<ctime>
using namespace std;
int main()
{
srand(time());
int n=,m=;
int i;
printf("%d %d\n",n,m);
for(i=;i<=n;i++)
printf("%d ",rand()%n+);
printf("\n");
for(i=;i<=m;i++){
int l=rand()%n+,a=rand()%n+;
int r=l+rand()%(n-l+),b=a+rand()%(n-a+);
printf("%d %d %d %d\n",l,r,a,b);
}
}
data_maker
祝AC
BZOJ 3809Gty的二逼妹子序列 解题报告+data marker的更多相关文章
- BZOJ 3809: Gty的二逼妹子序列
3809: Gty的二逼妹子序列 Time Limit: 80 Sec Memory Limit: 28 MBSubmit: 1387 Solved: 400[Submit][Status][Di ...
- Bzoj 3809: Gty的二逼妹子序列 莫队,分块
3809: Gty的二逼妹子序列 Time Limit: 35 Sec Memory Limit: 28 MBSubmit: 868 Solved: 234[Submit][Status][Dis ...
- 【BZOJ 3809】 3809: Gty的二逼妹子序列 (莫队+分块)
3809: Gty的二逼妹子序列 Time Limit: 80 Sec Memory Limit: 28 MBSubmit: 1728 Solved: 513 Description Autumn ...
- [bzoj3809]Gty的二逼妹子序列/[bzoj3236][Ahoi2013]作业
[bzoj3809]Gty的二逼妹子序列/[bzoj3236][Ahoi2013]作业 bzoj bzoj 题目大意:一个序列,m个询问在$[l,r]$区间的$[x,y]$范围内的数的个数/种类. ...
- 【BZOJ-3809】Gty的二逼妹子序列 分块 + 莫队算法
3809: Gty的二逼妹子序列 Time Limit: 80 Sec Memory Limit: 28 MBSubmit: 1072 Solved: 292[Submit][Status][Di ...
- BZOJ_3809_Gty的二逼妹子序列 && BZOJ_3236_[Ahoi2013]作业 _莫队+分块
BZOJ_3809_Gty的二逼妹子序列 && BZOJ_3236_[Ahoi2013]作业 _莫队+分块 Description Autumn和Bakser又在研究Gty的妹子序列了 ...
- 3809: Gty的二逼妹子序列
3809: Gty的二逼妹子序列 链接 分析: 和这道AHOI2013 作业差不多.权值是1~n的,所以对权值进行分块.$O(1)$修改,$O(\sqrt n)$查询. 代码: #include< ...
- 【BZOJ3809/3236】Gty的二逼妹子序列 [Ahoi2013]作业 莫队算法+分块
[BZOJ3809]Gty的二逼妹子序列 Description Autumn和Bakser又在研究Gty的妹子序列了!但他们遇到了一个难题. 对于一段妹子们,他们想让你帮忙求出这之内美丽度∈[a,b ...
- [AHOI2013]作业 & Gty的二逼妹子序列 莫队
---题面--- 题解: 题目要求统计一个区间内数值在[a, b]内的数的个数和种数,而这个是可以用树状数组统计出来的,所以可以考虑莫队. 考虑区间[l, r]转移到[l, r + 1],那么对于维护 ...
随机推荐
- ubuntu配置实验
实验:ubuntu配置 需求: caterpillar公司管理员小李需要将公司系统由windows全部更换为ubuntu,并制定SOP(操作指导书) 环境:vmware workstation 1 ...
- C# ListView用法详解 很完整
一.ListView类 1.常用的基本属性: (1)FullRowSelect:设置是否行选择模式.(默认为false) 提示:只有在Details视图该属性才有意义. (2) GridLines:设 ...
- ui7
2016.9讲义 一.课程的主要内容和目的 二.课程所用工具软件——Photoshop CS6 1. Photoshop 的发展史 1990.2,ps1.0问世,1991.2,PS2.0发行,此后,进 ...
- 题解 p2017 [USACO09DEC]晕牛Dizzy Cows
前言:P大终于又更新了 正文 转送门 由于当时我这个ZZ不知怎么了,这份题解排版可能有些尴尬,建议大家读完题后,看我主程序前的代码的注释,然后看最下面的图片,然后看第一张图片,对不起,望多谅解 以样例 ...
- 2019.4.25 表格表单与HTML5 && CSS3
目录 表格 标签 属性 表格间距离 表格的内边距 表格的边框 样式 边框合并 行合并 列合并 display 表单 标签 属性 提交的网址 请求方式 input相关 扩大响应范围 字符 密码 单选框 ...
- 查看Postgresql的连接状况
今天遇到一个问题,就是pg一直报错,说有太多的客户端连接到数据库上面.但现在不知道是什么程序连接.pg默认的max_connection是100,我并没有修改过,以为平时公司内部用,应该够了,但现在貌 ...
- 《Effective C++(第三版)》 的55条建议
1. 让自己习惯C++(Accustoming yourself to C++) 条款01: 视C++ 为一个语言联邦(View C++ as a federation of languages) 条 ...
- PSR2规范
为了尽可能的提升阅读其他人代码时的效率,下面例举了一系列的通用规则,特别是有关于PHP代码风格的.各个成员项目间的共性组成了这组代码规范.当开发者们在多个项目中合作时,本指南将会成为所有这些项目中共用 ...
- ES5支持的方法
ES5的支持的方法 concat() 把元素衔接到数组中. every() 测试断言函数是否对每个数组元素都为真 filter() 返回满足断言函数的数组元素 forEach() 为数组的每一个元素调 ...
- java.lang.NoClassDefFoundError: org/springframework/ui/jasperreports/JasperReportsUtils原因
在springMVC结合jasperReporter中发现的问题 java.lang.NoClassDefFoundError: org/springframework/ui/jasperreport ...