BZOJ 1127: [POI2008]KUP 最大子矩阵
时空隧道
对于这个矩阵如果其中某一个元素满足要求直接输出即可…否则就把大于2k的点都视为不可选择的点…找出所有的极大子矩阵…如果存在一个极大子矩阵符合要求就直接输出…否则就寻找大于2k的极大子矩阵然后递归寻找答案…
代码如下:
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
//by NeighThorn
#define LL long long
using namespace std;
const int maxn=2000+5;
int n,k,l[maxn][maxn],r[maxn][maxn],h[maxn][maxn];
LL sum[maxn][maxn],a[maxn][maxn];
inline LL calc(int x1,int y1,int x2,int y2){return sum[x2][y2]-sum[x2][y1-1]-sum[x1-1][y2]+sum[x1-1][y1-1];
}
inline void print(int x1,int y1,int x2,int y2){while(calc(x1,y1,x2,y2)>2*k){if(x1==x2)y2--;else if(calc(x1+1,y1,x2,y2)>=k)x1++;elsex2--;}printf("%d %d %d %d\n",y1,x1,y2,x2);exit(0);
}
signed main(void){scanf("%d%d",&k,&n);for(int i=1;i<=n;i++)for(int j=1;j<=n;j++){scanf("%lld",&a[i][j]);if(a[i][j]>=k&&a[i][j]<=2*k){printf("%d %d %d %d\n",j,i,j,i);return 0;}sum[i][j]=sum[i][j-1]+sum[i-1][j]-sum[i-1][j-1]+a[i][j];}for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){if(a[i][j]>2*k)l[i][j]=0;elsel[i][j]=l[i][j-1]+1;}for(int j=n;j>=1;j--){if(a[i][j]>2*k)r[i][j]=0;elser[i][j]=r[i][j+1]+1;}}for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)if(i!=1&&a[i][j]<=2*k&&a[i-1][j]<=2*k)h[i][j]=h[i-1][j]+1,l[i][j]=min(l[i-1][j],l[i][j]),r[i][j]=min(r[i-1][j],r[i][j]);for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)if(a[i][j]<=2*k){int tmp=calc(i-h[i][j],j-l[i][j]+1,i,j+r[i][j]-1);if(tmp>=k)print(i-h[i][j],j-l[i][j]+1,i,j+r[i][j]-1);}puts("NIE");return 0;
}
by >_< NeighThorn
BZOJ 1127: [POI2008]KUP 最大子矩阵相关推荐
- BZOJ 1127 [POI2008]KUP 最大子矩阵
题意:链接 方法:最大子矩阵 解析: 先考虑1*n的情况,如果有在目标区间内的直接输出. 否则找是否存在一个区间即可. 然后能否推广呢? 可以的. 如果元素有在目标区间的值的话,直接输出即可. 否则的 ...
- bzoj 1127 [POI2008]KUP——思路(悬线法)
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1127 大于2*K的视为不能选的"坏点".有单个格子满足的就直接输出. 剩 ...
- bzoj1127: [POI2008]KUP
1127: [POI2008]KUP Time Limit: 10 Sec Memory Limit: 162 MBSec Special Judge Submit: 568 Solved: 2 ...
- BZOJ 1124: [POI2008]枪战Maf(构造 + 贪心)
题意 有 \(n\) 个人,每个人手里有一把手枪.一开始所有人都选定一个人瞄准(有可能瞄准自己).然后他们按某个顺序开枪,且任意时刻只有一个人开枪. 因此,对于不同的开枪顺序,最后死的人也不同. 问最 ...
- [BZOJ 1112] [POI2008] 砖块Klo 【区间K大】
题目链接:BZOJ - 1112 题目分析 枚举每一个长度为k的连续区间,求出这个区间的最优答案,更新全局答案. 可以发现,这个区间的所有柱子最终都变成这k个数的中位数时最优,那么我们就需要查询这个区 ...
- bzoj 1124 [POI2008]枪战Maf 贪心
[POI2008]枪战Maf Time Limit: 10 Sec Memory Limit: 162 MB Submit: 741 Solved: 295 [Submit][Status][Di ...
- BZOJ 1113: [Poi2008]海报PLA
1113: [Poi2008]海报PLA Time Limit: 10 Sec Memory Limit: 162 MB Submit: 1025 Solved: 679 [Submit][Sta ...
- bzoj 1116: [POI2008]CLO(并查集)
1116: [POI2008]CLO Time Limit: 10 Sec Memory Limit: 162 MB Submit: 1180 Solved: 649 [Submit][Statu ...
- bzoj 1113: [Poi2008]海报PLA(栈)
1113: [Poi2008]海报PLA Time Limit: 10 Sec Memory Limit: 162 MB Submit: 1272 Solved: 870 [Submit][Sta ...
最新文章
- 再谈Linux修改应用程序获得root权限
- [导入]控制IFrame里的页面滚动原来如此简单:)
- chrome使用 postwoman_Postman的情敌,Postwoman了解一下
- 7th思妙想 Fun事连连,今天范式7岁啦!
- android 获取位置数据库,尝试从webview获取位置时,Android“SQLite数据库无法从/CachedGeoposition.db加载”错误...
- Exynos4412 文件系统制作(一)—— 文件系统的启动过程分析
- Linux 把文件内容发送给用户,linux上给其他在线用户发送信息(wall, write, talk, mesg)...
- FxFactory pro 8 for Mac(视觉特效包处理工具)直装版
- atitit.项目设计模式---ioc attilax总结
- 视频教程-R语言实战之行业案例分享视频课程-其他
- dd大牛的背包九讲 pdf下载_「背包问题九讲」dd大牛的背包九讲-背包问题汇总 - seo实验室...
- 一种并行随机梯度下降法
- LeetCode 59. 螺旋矩阵 II [水题+简单模拟]
- 乐高机器人走进图书馆活动方案_乐高机器人制作~~乐高大派对
- DSF data model
- Windows+VScode配置与使用git,超详细教程,赶紧收藏吧
- lisp 吴永进_采用Visual Lisp软件提高长输管道施工图设计效率
- Eclipse LUNA配置TomCat
- 微信做图小程序有哪些_盘点:微信小程序制作平台有哪些
- Vue3中使用svg文件图标(TS)
热门文章
- 如何做好创业公司CEO - 量力而行
- Spring Boot Admin配置安全验证
- win10 网络凭据 一直显示用户名与密码不正确
- 内存(DDR/DDR2/DDR3/DDR4)的速度等级和时钟频率———个人笔记
- 分布式数据库 Tracing (一)— Opentracing
- Android之设备加密
- 创建会计凭证BAPI_ACC_DOCUMENT_CHECK 原因代码和凭证类型必须增强
- 程序中美元符号$是什么
- 中国移动、联动、电信
- 计算机自主招生证书,高校自主招生必备常识:五大学科竞赛证书含金量