时空隧道


对于这个矩阵如果其中某一个元素满足要求直接输出即可…否则就把大于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 最大子矩阵相关推荐

  1. BZOJ 1127 [POI2008]KUP 最大子矩阵

    题意:链接 方法:最大子矩阵 解析: 先考虑1*n的情况,如果有在目标区间内的直接输出. 否则找是否存在一个区间即可. 然后能否推广呢? 可以的. 如果元素有在目标区间的值的话,直接输出即可. 否则的 ...

  2. bzoj 1127 [POI2008]KUP——思路(悬线法)

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1127 大于2*K的视为不能选的"坏点".有单个格子满足的就直接输出. 剩 ...

  3. bzoj1127: [POI2008]KUP

    1127: [POI2008]KUP Time Limit: 10 Sec  Memory Limit: 162 MBSec  Special Judge Submit: 568  Solved: 2 ...

  4. BZOJ 1124: [POI2008]枪战Maf(构造 + 贪心)

    题意 有 \(n\) 个人,每个人手里有一把手枪.一开始所有人都选定一个人瞄准(有可能瞄准自己).然后他们按某个顺序开枪,且任意时刻只有一个人开枪. 因此,对于不同的开枪顺序,最后死的人也不同. 问最 ...

  5. [BZOJ 1112] [POI2008] 砖块Klo 【区间K大】

    题目链接:BZOJ - 1112 题目分析 枚举每一个长度为k的连续区间,求出这个区间的最优答案,更新全局答案. 可以发现,这个区间的所有柱子最终都变成这k个数的中位数时最优,那么我们就需要查询这个区 ...

  6. bzoj 1124 [POI2008]枪战Maf 贪心

    [POI2008]枪战Maf Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 741  Solved: 295 [Submit][Status][Di ...

  7. BZOJ 1113: [Poi2008]海报PLA

    1113: [Poi2008]海报PLA Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 1025  Solved: 679 [Submit][Sta ...

  8. bzoj 1116: [POI2008]CLO(并查集)

    1116: [POI2008]CLO Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 1180  Solved: 649 [Submit][Statu ...

  9. bzoj 1113: [Poi2008]海报PLA(栈)

    1113: [Poi2008]海报PLA Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 1272  Solved: 870 [Submit][Sta ...

最新文章

  1. 再谈Linux修改应用程序获得root权限
  2. [导入]控制IFrame里的页面滚动原来如此简单:)
  3. chrome使用 postwoman_Postman的情敌,Postwoman了解一下
  4. 7th思妙想 Fun事连连,今天范式7岁啦!
  5. android 获取位置数据库,尝试从webview获取位置时,Android“SQLite数据库无法从/CachedGeoposition.db加载”错误...
  6. Exynos4412 文件系统制作(一)—— 文件系统的启动过程分析
  7. Linux 把文件内容发送给用户,linux上给其他在线用户发送信息(wall, write, talk, mesg)...
  8. FxFactory pro 8 for Mac(视觉特效包处理工具)直装版
  9. atitit.项目设计模式---ioc attilax总结
  10. 视频教程-R语言实战之行业案例分享视频课程-其他
  11. dd大牛的背包九讲 pdf下载_「背包问题九讲」dd大牛的背包九讲-背包问题汇总 - seo实验室...
  12. 一种并行随机梯度下降法
  13. LeetCode 59. 螺旋矩阵 II [水题+简单模拟]
  14. 乐高机器人走进图书馆活动方案_乐高机器人制作~~乐高大派对
  15. DSF data model
  16. Windows+VScode配置与使用git,超详细教程,赶紧收藏吧
  17. lisp 吴永进_采用Visual Lisp软件提高长输管道施工图设计效率
  18. Eclipse LUNA配置TomCat
  19. 微信做图小程序有哪些_盘点:微信小程序制作平台有哪些
  20. Vue3中使用svg文件图标(TS)

热门文章

  1. 如何做好创业公司CEO - 量力而行
  2. Spring Boot Admin配置安全验证
  3. win10 网络凭据 一直显示用户名与密码不正确
  4. 内存(DDR/DDR2/DDR3/DDR4)的速度等级和时钟频率———个人笔记
  5. 分布式数据库 Tracing (一)— Opentracing
  6. Android之设备加密
  7. 创建会计凭证BAPI_ACC_DOCUMENT_CHECK 原因代码和凭证类型必须增强
  8. 程序中美元符号$是什么
  9. 中国移动、联动、电信
  10. 计算机自主招生证书,高校自主招生必备常识:五大学科竞赛证书含金量