#include<cstdio>
#include<iostream>
#define N 201
#define M 500008
using namespace std;
int cnt,r,c,m,ls[*M],rs[*M],root[M],ans,sum[*M],sum1[*M],shu,num[][N][N],num1[][N][N];
void jia(int l,int r,int x,int &y,int v)
{
y=++cnt;
sum[y]=sum[x]+v;
sum1[y]=sum1[x]+;
if(l==r)
return;
ls[y]=ls[x];
rs[y]=rs[x];
int mid=(l+r)>>;
if(v<=mid)
jia(l,mid,ls[x],ls[y],v);
else
jia(mid+,r,rs[x],rs[y],v);
return;
}
int xun(int a1,int a2,int l,int r,int v)
{
if(!a1)
return ;
if(l>=v)
{
shu-=sum[a1]-sum[a2];
return sum1[a1]-sum1[a2];
}
int s=,mid=(l+r)>>;
if(mid>=v)
s+=xun(ls[a1],ls[a2],l,mid,v);
s+=xun(rs[a1],rs[a2],mid+,r,v);
return s;
}
void solve1()
{
for(int i=;i<=c;i++)
{
int a1;
scanf("%d",&a1);
jia(,,root[i-],root[i],a1);
}
for(int i=;i<=m;i++)
{
int x0,y0,x1,y1,v;
scanf("%d%d%d%d%d",&x0,&y0,&x1,&y1,&v);
int l=,r=,mid=(l+r)>>,b1,md,md1;
ans=;
for(;l<=r;)
{
shu=v;
b1=xun(root[y1],root[y0-],,,mid);
if(shu<=)
{
md1=v-shu;
md=mid;
ans=b1;
l=mid+;
}
else
r=mid-;
mid=(l+r)>>;
}
if(!ans)
printf("Poor QLW\n");
else
{
int a1;
r=xun(root[y1],root[y0-],,,md+);
r=ans-r;
l=;
mid=(l+r)>>;
for(;l<=r;)
{
if(md1-mid*md>=v)
{
a1=ans-mid;
l=mid+;
}
else
r=mid-;
mid=(l+r)>>;
}
printf("%d\n",a1);
}
}
return;
}
void solve2()
{
for(int i=;i<=r;i++)
for(int j=;j<=c;j++)
{
int a1;
scanf("%d",&a1);
for(int k=;k<=;k++)
{
num[k][i][j]=(num[k][i][j-]+num[k][i-][j]-num[k][i-][j-]);
num1[k][i][j]=(num1[k][i][j-]+num1[k][i-][j]-num1[k][i-][j-]);
if(a1>=k)
{
num[k][i][j]+=a1;
num1[k][i][j]++;
}
}
}
for(int i=;i<=m;i++)
{
int x0,y0,x1,y1,v;
scanf("%d%d%d%d%d",&x0,&y0,&x1,&y1,&v);
int l=,r=,mid=(l+r)>>,tm=,tm1=,tm2=;
for(;l<=r;)
{
if(num[mid][x1][y1]-num[mid][x1][y0-]-num[mid][x0-][y1]+num[mid][x0-][y0-]>=v)
{
tm=num1[mid][x1][y1]-num1[mid][x1][y0-]-num1[mid][x0-][y1]+num1[mid][x0-][y0-];
tm1=mid;
l=mid+;
}
else
r=mid-;
mid=(l+r)>>;
}
if(!tm)
printf("Poor QLW\n");
else
{
tm2=num[tm1][x1][y1]-num[tm1][x1][y0-]-num[tm1][x0-][y1]+num[tm1][x0-][y0-];
l=,r=num1[tm1+][x1][y1]-num1[tm1+][x1][y0-]-num1[tm1+][x0-][y1]+num1[tm1+][x0-][y0-];
r=tm-r;
mid=(l+r)>>;
for(;l<=r;)
{
if(tm2-mid*tm1>=v)
{
ans=tm-mid;
l=mid+;
}
else
r=mid-;
mid=(l+r)>>;
}
printf("%d\n",ans);
}
}
return;
}
int main()
{
scanf("%d%d%d",&r,&c,&m);
if(r==)
solve1();
else
solve2();
return ;
}

两种情况 对于R,C<=200,用前缀和暴力二分,对于另外的数据,在主席树上二分。

bzoj 1926: [Sdoi2010]粟粟的书架的更多相关文章

  1. bzoj 1926: [Sdoi2010]粟粟的书架 (主席树+二分)

    链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1926 题面; 1926: [Sdoi2010]粟粟的书架 Time Limit: 30 Se ...

  2. Bzoj 1926: [Sdoi2010]粟粟的书架(二分答案+乱搞+主席树)

    1926: [Sdoi2010]粟粟的书架 Time Limit: 30 Sec Memory Limit: 552 MB Description 幸福幼儿园 B29 班的粟粟是一个聪明机灵.乖巧可爱 ...

  3. 【刷题】BZOJ 1926 [Sdoi2010]粟粟的书架

    Description 幸福幼儿园 B29 班的粟粟是一个聪明机灵.乖巧可爱的小朋友,她的爱好是画画和读书,尤其喜欢 Thomas H. Cormen 的文章.粟粟家中有一个 R行C 列的巨型书架,书 ...

  4. BZOJ 1926: [Sdoi2010]粟粟的书架(主席树,二分答案)

    BZOJ 1926: [Sdoi2010]粟粟的书架(主席树,二分答案) 题意 : 给你一个长为\(R\)宽为\(C\)的矩阵,第\(i\)行\(j\)列的数为\(P_{i,j}\). 有\(m\)次 ...

  5. BZOJ.1926.[SDOI2010]粟粟的书架(前缀和 主席树 二分)

    题目链接 题意: 在给定矩形区域内找出最少的数,满足和>=k.输出数的个数.两种数据范围. 0~50 注意到(真没注意到...)P[i,j]<=1000,我们可以利用前缀和预处理. num ...

  6. 粟粟的书架(bzoj 1926)

    Description 幸福幼儿园 B29 班的粟粟是一个聪明机灵.乖巧可爱的小朋友,她的爱好是画画和读书,尤其喜欢 Thomas H. Co rmen 的文章.粟粟家中有一个 R行C 列的巨型书架, ...

  7. bzoj1926[Sdoi2010]粟粟的书架 二分 主席树

    1926: [Sdoi2010]粟粟的书架 Time Limit: 30 Sec  Memory Limit: 552 MBSubmit: 1064  Solved: 421[Submit][Stat ...

  8. [BZOJ1926][SDOI2010]粟粟的书架

    BZOJ Luogu Description 幸福幼儿园 B29 班的粟粟是一个聪明机灵.乖巧可爱的小朋友,她的爱好是画画和读书,尤其喜欢 Thomas H. Cormen 的文章.粟粟家中有一个 R ...

  9. BZOJ1926:[SDOI2010]粟粟的书架——题解

    http://www.lydsy.com/JudgeOnline/problem.php?id=1926 https://www.luogu.org/problemnew/show/P2468 幸福幼 ...

随机推荐

  1. (转)http接口测试——Jmeter接口测试实例讲解

    http://my.oschina.net/hellotest/blog/512482

  2. 【CDN】海外免费加速CDN:Incapsula,CloudFare

    最近服务器要搬迁到香港,因为后续有国外用户使用,基于此要使用大陆和海外都比较好的cdn才好 一开始国外同事推荐CloudFare,后来看看效果开始使用Incapsula CloudFare 官网:ht ...

  3. Hibernate中的Configuration类

    Configuration类用来管理我们的配置文件的信息的,通过它,我们可以通过创建一个configuration实例来管理相应的配置文档,但是通常我们只创建一个configuration实例. 下面 ...

  4. Java多线程同步的方法

    一 synchronized关键字 1.synchronized实现原理: ---基于对象监视器(锁) java中所有对象都自动含有单一的锁,JVM负责跟踪对象被加锁的次数.如果一个对象被解锁,其计数 ...

  5. 20160808_Linux服务

    1. http://bbs.csdn.net/topics/370100269 2. http://blog.csdn.net/csfreebird/article/details/8239933 h ...

  6. hiho_1290_demo_day

    题目大意 一个MxN的矩阵,矩阵中的有些方格中有障碍物,有些没有,有一个机器人从左上角出发,它只能有两种移动方式:一直向右移动,直到遇到障碍物:一直向下移动,直到遇到障碍物.     现在可以将矩阵中 ...

  7. as中的陷阱

    一.DisplayObject 1.有关width和height 对于一个对象A, 如果您设置了 width 属性,则 scaleX 属性会相应调整,并且会一直保存下来.尤其要注意的是如果A没有任何内 ...

  8. JAVA通过C3P0连接数据库

    配置文件: <?xml version="1.0" encoding="UTF-8"?> <c3p0-config>    <na ...

  9. 如何在大量jar包中搜索特定字符

    欢迎关注我的社交账号: 博客园地址: http://www.cnblogs.com/jiangxinnju/p/4781259.html GitHub地址: https://github.com/ji ...

  10. 在centos6.5中安装reids

    一.简介 Redis是一个key-value存储系统,是一个内存数据库,Redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部 分场合可以对关系数据库起到很好的补充作 ...