bzoj千题计划150:bzoj2738: 矩阵乘法
http://www.lydsy.com/JudgeOnline/problem.php?id=2738
整体二分
二维树状数组累积
#include<cstdio>
#include<iostream>
#include<algorithm> using namespace std; #define N 501
#define M 60001 #define lowbit(x) x&-x struct Number
{
int x,y,num;
}e[N*N]; struct Query
{
int X1,Y1,X2,Y2;
int k,cur;
int id;
}f[M],tmp1[M],tmp2[M]; int n; int c[N][N]; int ans[M],have[M]; void read(int &x)
{
x=; char c=getchar();
while(!isdigit(c)) c=getchar();
while(isdigit(c)) { x=x*+c-''; c=getchar(); }
} bool cmp(Number p,Number q)
{
return p.num<q.num;
} void change(int x,int y,int w)
{
for(int i=x;i<=n;i+=lowbit(i))
for(int j=y;j<=n;j+=lowbit(j))
c[i][j]+=w;
} int query(int x,int y)
{
int sum=;
for(int i=x;i;i-=lowbit(i))
for(int j=y;j;j-=lowbit(j))
sum+=c[i][j];
return sum;
} void solve(int head,int tail,int l,int r)
{
if(head>tail) return;
if(l==r)
{
for(int i=head;i<=tail;++i) ans[f[i].id]=e[l].num;
return;
}
int mid=l+r>>;
for(int i=l;i<=mid;++i) change(e[i].x,e[i].y,);
for(int i=head;i<=tail;++i)
have[f[i].id]=query(f[i].X2,f[i].Y2)-query(f[i].X1-,f[i].Y2)-query(f[i].X2,f[i].Y1-)+query(f[i].X1-,f[i].Y1-);
for(int i=l;i<=mid;++i) change(e[i].x,e[i].y,-);
int ll=,rr=;
for(int i=head;i<=tail;++i)
{
if(have[f[i].id]+f[i].cur>=f[i].k) tmp1[++ll]=f[i];
else
{
f[i].cur+=have[f[i].id];
tmp2[++rr]=f[i];
}
}
for(int i=;i<=ll;++i) f[head+i-]=tmp1[i];
for(int i=;i<=rr;++i) f[head+ll+i-]=tmp2[i];
solve(head,head+ll-,l,mid);
solve(head+ll,tail,mid+,r);
} int main()
{
int q;
read(n); read(q);
int tot=;
for(int i=;i<=n;++i)
for(int j=;j<=n;++j)
{
e[++tot].x=i;
e[tot].y=j;
read(e[tot].num);
}
sort(e+,e+tot+,cmp);
for(int i=;i<=q;++i)
{
read(f[i].X1);
read(f[i].Y1);
read(f[i].X2);
read(f[i].Y2);
read(f[i].k);
f[i].id=i;
}
solve(,q,,tot);
for(int i=;i<=q;++i) cout<<ans[i]<<'\n';
}
bzoj千题计划150:bzoj2738: 矩阵乘法的更多相关文章
- bzoj千题计划300:bzoj4823: [Cqoi2017]老C的方块
		
http://www.lydsy.com/JudgeOnline/problem.php?id=4823 讨厌的形状就是四联通图 且左右各连一个方块 那么破坏所有满足条件的四联通就好了 按上图方式染色 ...
 - bzoj千题计划263:bzoj4870: [六省联考2017]组合数问题
		
http://www.lydsy.com/JudgeOnline/problem.php?id=4870 80分暴力打的好爽 \(^o^)/~ 预处理杨辉三角 令m=n*k 要求满足m&x== ...
 - bzoj千题计划105:bzoj3503: [Cqoi2014]和谐矩阵(高斯消元法解异或方程组)
		
http://www.lydsy.com/JudgeOnline/problem.php?id=3503 b[i][j] 表示i对j是否有影响 高斯消元解异或方程组 bitset优化 #include ...
 - bzoj千题计划186:bzoj1048: [HAOI2007]分割矩阵
		
http://www.lydsy.com/JudgeOnline/problem.php?id=1048 #include<cmath> #include<cstdio> #i ...
 - bzoj千题计划158:bzoj2406: 矩阵(有源汇上下界可行流)
		
http://www.lydsy.com/JudgeOnline/problem.php?id=2406 设矩阵C=A-B 最小化 C 一行或一列和的最大值 整体考虑一行或者一列的和 二分最大值 这样 ...
 - bzoj千题计划196:bzoj4826: [Hnoi2017]影魔
		
http://www.lydsy.com/JudgeOnline/problem.php?id=4826 吐槽一下bzoj这道题的排版是真丑... 我还是粘洛谷的题面吧... 提供p1的攻击力:i,j ...
 - bzoj千题计划143:bzoj1935: [Shoi2007]Tree 园丁的烦恼
		
http://www.lydsy.com/JudgeOnline/problem.php?id=1935 二维偏序问题 排序x,离散化树状数组维护y #include<cstdio> #i ...
 - bzoj千题计划280:bzoj4592: [Shoi2015]脑洞治疗仪
		
http://www.lydsy.com/JudgeOnline/problem.php?id=4592 注意操作1 先挖再补,就是补的范围可以包含挖的范围 SHOI2015 的题 略水啊(逃) #i ...
 - bzoj千题计划251:bzoj3672: [Noi2014]购票
		
http://www.lydsy.com/JudgeOnline/problem.php?id=3672 法一:线段树维护可持久化单调队列维护凸包 斜率优化DP 设dp[i] 表示i号点到根节点的最少 ...
 
随机推荐
- python learning OOP2.py
			
class Student(object): pass s = Student() s.name = 'Chang' # 给一个实例动态绑定一个属性 print(s.name) def set_age ...
 - Week2-作业1
			
第一章:引用:如果一架民用飞机上有一个功能,用户使用它的概率是百万分之一,你还要做这个功能么? 选择之后,这个功能是什么呢?谜底是飞机的安全功能. 个人认为,飞机的安全功能这个 ...
 - Week2-作业一——《构建之法》三章精读之想
			
Week2-作业一——精读<构建之法> 前言 其实我本人是不经常看书的,电子书倒是看了不少,实体书真的不经常看,但是为了这次作业的需求,我还是选择静下心来阅读一下这本<构建之法> ...
 - C++判断char*的指向
			
char *a = "Peter"; char b[] = "Peter"; ]; strcpy_s(c, , "Peter"); 这里a指 ...
 - python response.text和response.content的区别
			
1.重点理解 response.text返回的类型是str response.content返回的类型是bytes,可以通过decode()方法将bytes类型转为str类型 推荐使用:respo ...
 - JVM 规范
			
http://files.cnblogs.com/files/dragonsuc/jls8.pdf 或者官网:http://files.cnblogs.com/files/dragonsuc/jls8 ...
 - mybatis映射文件的使用(一),工程目录结构、源代码和数据库
			
代码开发环境 开发工具为IDEA 工程构建方式为maven 数据库为mysql 5.7.20 mybatis版本为 3.1.1 mysql-connect-java jar包版本为 5.1.34 数据 ...
 - C# Socket模拟发送接收
			
Socket简介 通过TCP/IP与仪器或设备通讯,在C#语言中,我们通常采用Socket.本项目是一个简单的Socket建立服务监听与Socket作为客户端请求的一个示例. 项目结构 客户端项目 S ...
 - 题解 P3870 【[TJOI2009]开关】
			
这个题我愣是交了好几遍没有过...... 后来@_皎月半洒花dalao告诉我说要^儿子节点的tag,然后就明白了...... 行吧,先上题面: 题目描述 现有N(2 ≤ N ≤ 100000)盏灯排成 ...
 - Springboot返回html
			
注:Springboot的版本2.1.3.RELEASE List-1 application.properties文件 server.port=8080 #url中,项目的前缀 server.ser ...