题目链接:传送门

题目思路:整体二分(二分的是答案,附带的是操作)

     把矩阵中的元素对应成插入操作,然后就有插入和询问操作。

     然后根据插入操作对于答案的影响,询问操作所匹配的符合答案个数,将操作分为两段,继续递归。。。

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <algorithm>
#include <cstring>
#include <stack>
#include <cctype>
#include <queue>
#include <string>
#include <vector>
#include <set>
#include <map>
#include <climits>
#define lson rt<<1,l,mid
#define rson rt<<1|1,mid+1,r
#define fi first
#define se second
#define ping(x,y) ((x-y)*(x-y))
#define mst(x,y) memset(x,y,sizeof(x))
#define mcp(x,y) memcpy(x,y,sizeof(y))
using namespace std;
#define gamma 0.5772156649015328606065120
#define MOD 1000000007
#define inf 0x3f3f3f3f
#define N 60005
#define maxn 1000005
typedef pair<int,int> PII;
typedef long long LL; int n,m,k,len,S,T;
int ans[N];
struct Node{
int id,x,y,a,b,v,f;
Node(){}
Node(int _id,int _x,int _y,int _a,int _b,int _v,int _f):
id(_id),x(_x),y(_y),a(_a),b(_b),v(_v),f(_f){}
}node[maxn],t1[maxn],t2[maxn];
int tree[][];
void add(int x,int y,int v){for(int i=x;i<=n;i+=(i&-i))for(int j=y;j<=n;j+=(j&-j))tree[i][j]+=v;}
int get(int x,int y){
int res=;
for(int i=x;i;i-=(i&-i))for(int j=y;j;j-=(j&-j))res+=tree[i][j];
return res;
}
int query(int x,int y,int a,int b){return get(a,b)+get(x,y)-get(x,b)-get(a,y);}
void solve(int ql,int qr,int l,int r){
if(ql>qr)return;
if(l==r){
for(int i=ql;i<=qr;++i)if(node[i].f==)
ans[node[i].id]=l;
return;
}
int len1=,len2=,mid=l+r>>;
for(int i=ql;i<=qr;++i){
if(node[i].f==){
if(node[i].v<=mid){
add(node[i].x,node[i].y,);
t1[len1++]=node[i];
}
else t2[len2++]=node[i];
}
else{
int pos=query(node[i].x-,node[i].y-,node[i].a,node[i].b);
if(pos<node[i].v){node[i].v-=pos;t2[len2++]=node[i];}
else{
t1[len1++]=node[i];
}
}
}
for(int i=ql;i<=qr;++i)if(node[i].f==&&node[i].v<=mid)add(node[i].x,node[i].y,-);
for(int i=;i<len1;++i)node[i+ql]=t1[i];
for(int i=;i<len2;++i)node[i+ql+len1]=t2[i];
solve(ql,ql+len1-,l,mid);solve(ql+len1,qr,mid+,r);
}
int main(){
int i,j,group,x,y,x1,y1,Case=;
scanf("%d%d",&n,&m);
int _min=INT_MAX,_max=INT_MIN;
for(i=;i<=n;++i)for(j=;j<=n;++j){
scanf("%d",&x);
_min=min(_min,x);
_max=max(_max,x);
node[++len]=Node(len,i,j,,,x,);
}
for(i=;i<=m;++i){
scanf("%d%d%d%d%d",&x,&y,&x1,&y1,&k);
node[++len]=Node(i,x,y,x1,y1,k,);
}
solve(,len,_min,_max);
for(i=;i<=m;++i)printf("%d\n",ans[i]);
return ;
}

tsinsen A1333. 矩阵乘法的更多相关文章

  1. tsinsen A1333. 矩阵乘法(梁 盾)

    A1333. 矩阵乘法(梁 盾) 时间限制:2.0s   内存限制:256.0MB   总提交次数:515   AC次数:211   平均分:54.14   将本题分享到:        查看未格式化 ...

  2. 【BZOJ】【2738】&【Tsinsen】【A1333】矩阵乘法

    整体二分+树状数组 过了[BZOJ][2527][POI2011]Meteors以后这题就没那么难啦~ 关键是[从小到大]依次插入数字,然后整体二分每个查询的第k大是在第几次插入中被插入的……嗯大概就 ...

  3. 【清澄A1333】【整体二分+二维树状数组】矩阵乘法(梁盾)

    试题来源 2012中国国家集训队命题答辩 问题描述 给你一个N*N的矩阵,不用算矩阵乘法,但是每次询问一个子矩形的第K小数. 输入格式 第一行两个数N,Q,表示矩阵大小和询问组数: 接下来N行N列一共 ...

  4. *HDU2254 矩阵乘法

    奥运 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submissi ...

  5. *HDU 1757 矩阵乘法

    A Simple Math Problem Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Ot ...

  6. CH Round #30 摆花[矩阵乘法]

    摆花 CH Round #30 - 清明欢乐赛 背景及描述 艺术馆门前将摆出许多花,一共有n个位置排成一排,每个位置可以摆花也可以不摆花.有些花如果摆在相邻的位置(隔着一个空的位置不算相邻),就不好看 ...

  7. POJ3070 Fibonacci[矩阵乘法]

    Fibonacci Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 13677   Accepted: 9697 Descri ...

  8. bzoj 2738 矩阵乘法

    其实这题跟矩阵乘法没有任何卵关系,直接整体二分,用二维树状数组维护(刚刚学会>_<),复杂度好像有点爆炸(好像有十几亿不知道是不是算错了),但我们不能怂啊23333. #include&l ...

  9. 【BZOJ-2476】战场的数目 矩阵乘法 + 递推

    2476: 战场的数目 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 58  Solved: 38[Submit][Status][Discuss] D ...

随机推荐

  1. Linux top命令的图解使用

    Linux下的top命令的图解使用     linux下top命令参数解释     TOP命令详解

  2. 巧用FTP命令进行文件传输

    巧用FTP进行文件传输   Internet作为现代信息高速公路已深入我们的生活,其中它所提供的电子邮件Web网站信息服务已被越来越多的人所熟知和使用.FTP作为Internet的功能之一,虽然没有像 ...

  3. FreeMarker静态化文件解决SEO推广问题

    1.问题背景 SEO一直是站点对外推广的一个重要手段,如何可以让搜索引擎高速搜索到站点对于增强站点的浏量,提升站点对外形象有着重要意义.那么如何可以对SEO进行优化呢?一个很经常使用的手段就是在网页的 ...

  4. 关于JSP和HTML

    工作中,发现非常多同事不清楚JSP与HTML的生命周期.以至于出现"JavaScript为啥不能调用JSTL标签(或EL表达式)?"的笑话问题. 以下以流程图的方式.简单说明一下过 ...

  5. 跨Server查询

    GO RECONFIGURE GO GO RECONFIGURE GO SELECT MAX(OldestCall) FROM ( SELECT FeildAA As FeildAAFROM OPEN ...

  6. SET QUOTED_IDENTIFIER OFF语句的作用 转载

    SET QUOTED_IDENTIFIER ON SELECT * FROM "USER" WHERE a='netasp' SET QUOTED_IDENTIFIER ON SE ...

  7. Macbook小问题

    Macbook小问题 有时候 AppStore 和 Safari,QQ等 无法上网,但 chrome 却是正常的.解决办法:终端输入如下命令,其实是在 kill 掉网卡进程. sudo killall ...

  8. [转]RPC、CORBA、WebService之区别

    RPC是由Sun发明的远程过程调用协议,是第一种真正的分布式应用模型.Windows上使用的R PC是DCERPC的扩展.严格地说,RPC是一种逻辑上的协议,它可以使用Socket.Named Pip ...

  9. eclipse配置代码自动补全auto-completion

    你如果使用的是JAVA EE的模式,就这样配置: 1. Window>Preferences>Java>Editor>Content Assist>Auto Activa ...

  10. PHP代码审计学习之命令执行漏洞挖掘及防御

    [1]可能存在命令执行漏洞的函数: 00x1:常用的命令执行函数:exec.system.shell_exec.passthru 00x2:常用的函数处理函数:call_user_func.call_ ...