传送门

洛谷

Solution

考虑看到什么k小就整体二分套上去试一下。
矩形k小整体二分+二维树状数组就好了。

代码实现

// luogu-judger-enable-o2
/*mail: mleautomaton@foxmail.comauthor: MLEAutoMatonThis Code is made by MLEAutoMaton
*/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#include<algorithm>
#include<queue>
#include<set>
#include<map>
#include<iostream>
using namespace std;
#define ll long long
#define re register
#define file(a) freopen(a".in","r",stdin);freopen(a".out","w",stdout)
inline int gi()
{int f=1,sum=0;char ch=getchar();while(ch>'9' || ch<'0'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0' && ch<='9'){sum=(sum<<3)+(sum<<1)+ch-'0';ch=getchar();}return f*sum;
}
const int N=1000010;
struct node
{int x,y,k,xx,yy,id;
}q[N],q1[N],q2[N];
int c[510][510],n,Q,ans[N];
int lowbit(int x){return x&(-x);}
void Add(int x,int y,int d){for(int i=x;i<=n;i+=lowbit(i))for(int j=y;j<=n;j+=lowbit(j))c[i][j]+=d;}
int query(int x,int y){int ret=0;for(int i=x;i>0;i-=lowbit(i))for(int j=y;j>0;j-=lowbit(j))ret+=c[i][j];return ret;}
int query(int x,int xx,int y,int yy){return query(xx,yy)-query(x-1,yy)-query(xx,y-1)+query(x-1,y-1);}
void solve(int l,int r,int ql,int qr)
{if(ql>qr)return;if(l==r){for(re int i=ql;i<=qr;i++)if(q[i].id)ans[q[i].id]=l;return;}int mid=(l+r)>>1,L=0,R=0;for(re int i=ql;i<=qr;i++)if(q[i].id){int sum=query(q[i].x,q[i].xx,q[i].y,q[i].yy);if(sum>=q[i].k)q1[++L]=q[i];else{q[i].k-=sum;q2[++R]=q[i];}}else{if(q[i].k<=mid){q1[++L]=q[i];Add(q[i].x,q[i].y,1);}else q2[++R]=q[i];}for(re int i=ql;i<=qr;i++)if(!q[i].id && q[i].k<=mid)Add(q[i].x,q[i].y,-1);for(re int i=1;i<=L;i++)q[ql+i-1]=q1[i];for(re int i=1;i<=R;i++)q[ql+L+i-1]=q2[i];solve(l,mid,ql,ql+L-1);solve(mid+1,r,ql+L,qr);
}
int main()
{n=gi();int cnt=gi();for(re int i=1;i<=n;i++)for(re int j=1;j<=n;j++)q[++Q]=(node){i,j,gi(),0,0,0};int Time=0;while(cnt--){Time++;int x=gi(),y=gi(),xx=gi(),yy=gi(),k=gi();q[++Q]=(node){x,y,k,xx,yy,Time};}solve(1,1e9,1,Q);for(int i=1;i<=Time;i++)printf("%d\n",ans[i]);return 0;
}

转载于:https://www.cnblogs.com/mle-world/p/10580583.html

【洛谷1527】 [国家集训队]矩阵乘法(整体二分)相关推荐

  1. 洛谷P1527 [国家集训队] 矩阵乘法 [整体二分,二维树状数组]

    题目传送门 矩阵乘法 题目描述 给你一个N*N的矩阵,不用算矩阵乘法,但是每次询问一个子矩形的第K小数. 输入输出格式 输入格式: 第一行两个数N,Q,表示矩阵大小和询问组数: 接下来N行N列一共N* ...

  2. P1527 [国家集训队]矩阵乘法 整体二分 + 二维树状数组

    传送门 题意: 思路: 算是个整体二分的板子啦,不过这个是二维的矩阵,我们只需要把一位树状数组改成二维的,让后动态维护单点加,区间查询前缀和即可. //#pragma GCC optimize(2) ...

  3. P1527 [国家集训队]矩阵乘法

    P1527 [国家集训队]矩阵乘法 题意: 给你一个 n×n 的矩阵,每次询问一个子矩形的第 k 小数. 题解: 整体二分稍微加强化 模板题是一个序列,现在升级成一个矩阵求,做法和原理都是一样的 使用 ...

  4. 洛谷P2619 [国家集训队]Tree I 题解

    洛谷P2619 [国家集训队]Tree I 题解 题目链接:P2619 [国家集训队]Tree I 题意: 给你一个无向带权连通图,每条边是黑色或白色.让你求一棵最小权的恰好有 need\text{n ...

  5. 洛谷P2619 [国家集训队2]Tree I(带权二分,Kruscal,归并排序)

    洛谷题目传送门 给一个比较有逼格的名词--WQS二分/带权二分/DP凸优化(当然这题不是DP). 用来解决一种特定类型的问题: 有\(n\)个物品,选择每一个都会有相应的权值,需要求出强制选\(nee ...

  6. 洛谷P1494 [国家集训队]小Z的袜子

    P1494 [国家集训队]小Z的袜子 题目描述 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命-- ...

  7. 洛谷 P4643 [国家集训队]阿狸和桃子的游戏

    题目:[国家集训队]阿狸和桃子的游戏 思路: 截个图,这个思路太巨了Orz. 图可以点.

  8. 洛谷P2839 [国家集训队]middle(主席树)

    P2839 [国家集训队]middle 我们可以考虑二分中位数 checkcheckcheck 答案,那么我们对于某个值 midmidmid ,把 [l,r][l,r][l,r] 内的所有小于 mid ...

  9. 【BZOJ2738】矩阵乘法 [整体二分][树状数组]

    矩阵乘法 Time Limit: 20 Sec  Memory Limit: 256 MB [Submit][Status][Discuss] Description 给你一个N*N的矩阵,不用算矩阵 ...

最新文章

  1. 飞天AI平台到底哪里与众不同?听听它的架构者怎么说
  2. JavaScript常用内置对象之Array
  3. 阿里云释放数据能力 开启大数据元年
  4. 无限极评论怎么删除php,TP5 无限极评论回复
  5. mysql插入二进制命令_MySQL将语句写入到binlog二进制日志中
  6. 两款免费DCIOM 图像浏览软件介绍和DICOM图像例子供下载
  7. Hadoop2.x集群动态添加删除数据节点
  8. Spring AOP(六)之访问目标方法的参数
  9. 联通沃云服务器型号,云服务器
  10. E20180418-hm
  11. rocketmq长轮询
  12. 串级pid算法c语言实现,【开源】分享一个经典的串级PID算法,附源代码
  13. Spring学习路线
  14. 三星s8html查看器,拆解三星S8手机
  15. 鸿图之下服务器维护10月25,鸿图之下11月25日维护更新公告
  16. RPM REBUILD
  17. excel表格怎么调整行高和列宽_wps表格课程08|调整行高列宽
  18. 【CSS3动画】利用CSS3制作“百度浏览器”官网奔跑的北极熊效果(不含背景移动)
  19. 一法通则百法通 佳能照片打印机连供改造
  20. java生成矢量条形码二维码

热门文章

  1. Linux命令行常用小结
  2. Java修饰符的访问权限
  3. 使用glob()查找文件
  4. 使用python实现栈和队列
  5. 朋友易得 ,知已难求
  6. 【Data guard】SWITCHOVER_STATUS为FAILED DESTINATION解决办法
  7. 2019 第二周 开发笔记
  8. java生成二维码打印到浏览器
  9. 配置普通,长得丑,OPPO R11凸显OPPO创新乏力
  10. 传说中的神器: shared_ptr/weak_ptr/scoped_ptr