【普组模拟赛】马农(farmer.pas/cpp)
【普组模拟赛】马农(farmer.pas/cpp)
题目描述:
在观看完战马检阅之后,来自大草原的两兄弟决心成为超级“马农”,专门饲养战马。
兄弟两回到草原,将可以养马的区域,分为 N*N 的单位面积的正方形, 并实地进行考察,归纳出了每个单位面积可以养马所获得的收益。接下来就要开始规划他们各自的马场了。首先,两人的马场都必须是矩形区域。同时,为了方便两人互相照应,也为了防止马匹互相走散,规定两个马场的矩形区域相邻,且只有一个交点。最后,互不认输的两人希望两个马场的收益相当,这样才不会影响他们兄弟的感情。现在,兄弟两找到你这位设计师,希望你给他们设计马场,问共有多少种设计方案。
输入
第一行一个整数 N,表示整个草原的大小为 N*N。
接下来 N 行,每行 N 个整数 A(i,j),表示第 i 行第 j 列的单位草地的收成。
(注意:收益可能是负数,养马也不是包赚的,马匹也可能出现生病死亡等意外。)
输出
输出符合两人要求的草原分配方案数。
样例输入
3
1 2 3
4 5 6
7 8 9
样例输出
2
【样例解释】
数据范围限制
【数据范围】
40%的数据, N<=10。
100%的数据, N<=50, -1000<A(i,j)<1000。
分析:这道题其实我也没想到很好的方法,看了大佬的题解后,瞬间崩溃,还是好好做暴力吧!
暴力?暴力能过?
*其实我也不知道,可能是JZOJ的数据太水了,数据大,I don’t know! QWQ *
进入正题,我们每次去枚举一个交点即(i,j)因为题目规定只能有一个交点,然后去暴力交点的四个方向(左上,右上,左下,右下)
因为题目规定只能有一个交点,所以我们每次暴力是,只需要对角暴力即可,
(1和4),(2和3);
怎样去判断它们有多少块田收益相同呢?
其实并没有那么难,我们只需在读入时做前缀和的操作就行了。
这公式是怎么得到的?
如果我们要求出这块田的收益是多少,跟他同行的前一块田的收益(绿色部分, b[i][j-1])
和它同一列的上一行的田地收益(红色部分,b[i-1][j]),最后加上我们输入的当前的小田的收益(棕色部分,a),当我们加完后,可以明显的看到,田地有重复的地方(粉色部分b[i-1][j-1]),管他三七二十一,减掉就行了。
又到了激动人心的时刻
上AC代码
#include<cstdio>
using namespace std;
int n,s,a,b[1005][1005],c[10000005];
int main()
{//freopen("farmer.in","r",stdin);//freopen("farmer.out","w",stdout);cin>>n;for(int i=1;i<=n;i++)for(int j=1;j<=n;j++){cin>>a;b[i][j]=b[i-1][j]+b[i][j-1]-b[i-1][j-1]+a;//前缀和,都懂 }for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)//枚举交点的位置 {//下面是第一种情况://其中一个兄弟的牧场在左上方//另外一个兄弟的牧场在右下方for(int x=1;x<=i;x++)//左上方 for(int y=1;y<=j;y++)c[b[i][j]-b[x-1][j]-b[i][y-1]+b[x-1][y-1]]++;//统计每个收益出现的个数 for(int x=i+1;x<=n;x++)//右下方 for(int y=j+1;y<=n;y++)if(c[b[x][y]-b[i][y]-b[x][j]+b[i][j]]!=0)s+=c[b[x][y]-b[i][y]-b[x][j]+b[i][j]];//如果这个收益在上面出现过,就说明这两个兄弟的收益相等//就加这个收益出现的个数 for(int x=1;x<=i;x++)for(int y=1;y<=j;y++)c[b[i][j]-b[x-1][j]-b[i][y-1]+b[x-1][y-1]]=0;//下面是第二种情况: //其中一个兄弟的牧场在左下方//另外一个兄弟的牧场在右上方 //(下面我就不解释了,同上) for(int x=i+1;x<=n;x++)for(int y=1;y<=j;y++)c[b[x][j]-b[i][j]-b[x][y-1]+b[i][y-1]]++;for(int x=1;x<=i;x++)for(int y=j+1;y<=n;y++)if(c[b[i][y]-b[x-1][y]-b[i][j]+b[x-1][j]]!=0)s+=c[b[i][y]-b[x-1][y]-b[i][j]+b[x-1][j]];for(int x=i+1;x<=n;x++)for(int y=1;y<=j;y++)c[b[x][j]-b[i][j]-b[x][y-1]+b[i][y-1]]=0;} cout<<s<<endl;return 0;
}
谢谢
【普组模拟赛】马农(farmer.pas/cpp)相关推荐
- 【普组模拟赛】马球比赛(polo.pas/cpp
File IO): input:polo.in output:polo.out 时间限制: 1000 ms 空间限制: 128000 KB 具体限制 Goto ProblemSet 题目描述 在解决了 ...
- 【jzoj1965】【递推】【普组模拟赛】马球比赛
题目描述 在解决了马语翻译问题后,马匹数量越来越多,不少乡镇都有了数量可观的马匹,开始出现马球比赛.乡镇之间决定进行马球联赛. 联赛的赛制,主要是比赛双方的马匹数量,成了一个急需解决的问题.首先,所有 ...
- 2020.02.07普及C组模拟赛4
普及C组模拟赛4 **1.权势二进制 ** 题目描述 一个十进制整数被叫做权势二进制,当他的十进制表示的时候只由0或1组成.例如0,1,101,110011都是权势二进制而2,12,900不是. 当给 ...
- NOIP2017提高组模拟赛4 (总结)
NOIP2017提高组模拟赛4 (总结) 第一题 约数 设K是一个正整数,设X是K的约数,且X不等于1也不等于K. 加了X后,K的值就变大了,你可以重复上面的步骤.例如K= 4,我们可以用上面的规则产 ...
- 十四届蓝桥青少组模拟赛Python-20221108
十四届蓝桥青少组模拟赛Python-20221108 T1.二进制位数 十进制整数2在十进制中是1位数,在二进制中对应10,是2位数. 十进制整数22在十进制中是2位数,在二进制中对应10110,是5 ...
- 计蒜客信息学3月普及组模拟赛
A. 断幺九 题目链接 分值:100 时间限制:1000ms 测试点数目:10 B. 锈湖 题目链接 分值:100 时间限制:2000ms 测试点数目:10 C. 图 题目链接 分值:100 时间限 ...
- 第一届『Citric杯』NOIP提高组模拟赛 题解
[官方题解]第一届『Citric杯』NOIP提高组模拟赛 题解 第一题 柠檬超市 这题是本次模拟赛的送分题.做法显然. 但是注意此题有一个陷阱: 注意W和C的规模都是10^9,所以如果直接用doubl ...
- 2019 蓝桥杯省赛 B 组模拟赛(一)蒜厂年会
2019 蓝桥杯省赛 B 组模拟赛(一)蒜厂年会 这题有两种情况 1.最大的和是在0~n-1 2.最大的和越过了首尾 这时候只要用n个数的和 - 0~n-1 的连续的最小和 这是求连续子集最大.最小 ...
- DD 摆磁铁(计蒜客信息学8月普及组模拟赛)
DD 摆磁铁 这道题来自 计蒜客信息学8月普及组模拟赛 普及组!! 把我一个TG选手看懵了 看来我要回去打普及了 题目大意 给出一个n个节点的树,要把树上给定的2*m个节点两两配对,两个节点配对的产生 ...
最新文章
- BZOJ - 3631 松鼠的新家 (树链剖分)
- zabbix历史数据mysql_处理Zabbix历史数据库办法一
- [MATLAB]MATLAB中SIMULINK常用命令表
- Wireshark实战分析值ICMP协议(一)
- 根据拼音首字母查询人名【转】
- LeetCode热门100之 无重复字符的最长子串
- 细说大话西游中的经典元素
- Windows 系统添加 VirtIO 驱动(Windows ISO 安装镜像添加驱动)
- 解决Mac系统更新后,SVN无法使用的问题
- 断点续传的原理(转)
- Linux shell的简单学习
- Drools Accumulate 语法解析及使用
- 2022技术趋势预测,Python、Java占主导,Rust、Go增长迅速,元宇宙成为关注焦点
- python批量自动订票_python+splinter实现12306网站刷票并自动购票流程
- 前端 报错! 总结:
- [转]这个新闻故事也太神奇了,很吸引人,都不像是新闻了
- k8s 发布项目实现 nginx 和 tomcat 动静分离(2)
- Heartbleed第一篇:“心脏流血”高危漏洞情况通报(4月9日结果)
- 2022-2028年中国柚子行业市场分析预测及发展战略研究报告
- MapRecuce 词频统计案例
热门文章
- sheng的学习笔记-内部类
- 代码随想录30——回溯:332重新安排行程、51N皇后、37解数独
- matlab凯塞窗低通fir滤波器,基于Matlab的FIR滤波器设计与实现
- 家用智能投影推荐 五千元档的当贝F5和当贝X3有哪些区别?
- 办公室绿植租赁布置方案
- 多卡聚合智能融合通信设备在智慧房车上的应用
- 学计算机u盘多少g合适,装系统的u盘需要多大-大白菜装win7的系统一般要多少G的U?大 – 手机爱问...
- 电力电子技术的matlab实践 pdf,MATLAB 在电力电子技术中的应用.pdf
- R语言|散点图 ———R语言数据可视化系列(一)
- 论文结论与摘要的区别