博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[洛谷P1369]矩形
阅读量:4567 次
发布时间:2019-06-08

本文共 975 字,大约阅读时间需要 3 分钟。

题目大意:有$n(n\leqslant300)$个点,每个点坐标范围在$[1\sim100]$,求一个矩阵,使得边界上的点最多。

题解:做一遍二维前缀和,直接暴力枚举两个顶点

卡点:

 

C++ Code:

#include 
#include
#define maxn 105int n, ans;int s[maxn][maxn];inline int calc(int lx, int ly, int rx, int ry) { if (lx > rx || ly > ry) return 0; return s[rx][ry] - s[rx][ly - 1] - s[lx - 1][ry] + s[lx - 1][ly - 1];}int main() { scanf("%d", &n); for (int i = 0, x, y; i < n; ++i) { scanf("%d%d", &x, &y); s[x][y] = 1; } for (int i = 1; i <= 100; ++i) { for (int j = 2; j <= 100; j++) s[i][j] += s[i][j - 1]; } for (int i = 2; i <= 100; ++i) { for (int j = 1; j <= 100; j++) s[i][j] += s[i - 1][j]; } for (int lx = 1; lx <= 100; ++lx) for (int ly = 1; ly <= 100; ++ly) for (int rx = lx; rx <= 100; ++rx) for (int ry = ly; ry <= 100; ++ry) { ans = std::max(ans, calc(lx, ly, rx, ry) - calc(lx + 1, ly + 1, rx - 1, ry - 1)); } printf("%d\n", ans); return 0;}

  

转载于:https://www.cnblogs.com/Memory-of-winter/p/10336007.html

你可能感兴趣的文章
Sublime Text3使用Package Control 报错There Are No Packages Available For Installation
查看>>
判断连通图是否有环(并查集)
查看>>
汽车之家面试题2016
查看>>
POJ-数据结构-优先队列模板
查看>>
【HAOI2006】旅行(并查集暴力)
查看>>
css实现文本超出部分省略号显示
查看>>
留言板
查看>>
vue-router组件状态刷新消失的问题
查看>>
Android UI开发第十四篇——可以移动的悬浮框
查看>>
java8的一些用法
查看>>
(十)Hive分析窗口函数(二) NTILE,ROW_NUMBER,RANK,DENSE_RANK
查看>>
2018-11-19站立会议内容
查看>>
STM32 通用定时器相关寄存器
查看>>
【题解】1621. 未命名
查看>>
字符串加密算法
查看>>
Oracle的实例恢复解析
查看>>
UICollectionView cellForItemAt 不被调用
查看>>
巧用网盘托管私人Git项目
查看>>
python全栈脱产第19天------常用模块---shelve模块、xml模块、configparser模块、hashlib模块...
查看>>
[LeetCode] House Robber
查看>>