生日蛋糕

题目大意:

一个正方形蛋糕,竖着横着各切一刀,使他变成四块正方形蛋糕,蛋糕中有一些巧克力,而小明只能拿巧克力最少的一块,请问小明要怎么切才能吃到最多的巧克力

样例输入

8

…#…#…

.##…#…

…#.

.##…

…#.#…

…#.

…#…#…

样例输出

3

3 4

数据范围限制

提示

数据说明:

20% N<=50

50% N<=2000

100% N<=4500

解题思路:

用f[i][j]来表示前i行前j列的巧克力总数,那我们就可以得知:

f[i][j]=f[i−1][j]+f[i][j−1]−f[i−1][j−1]+sf[i][j]=f[i-1][j]+f[i][j-1]-f[i-1][j-1]+sf[i][j]=f[i−1][j]+f[i][j−1]−f[i−1][j−1]+s

因为f[i-1][j]和f[i][j-1]重复了f[i-1][j-1]所以要减去,当此处有巧克力时,s为1否则为0

然后我们枚举1,1到n,n的每一个点,从这个点开始分割

左上为f[i][j],右上为f[i][n]-f[i][j],左下为f[n][j]-f[i][j],右下为f[n][n]-f[i][n]-f[n][j]+f[i][j],这四个之中最小的就是当前分法的结果,再求最大的结果,即可

#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
#include<string>
using namespace std;
int n,ans,f[4505][4505],t,x,y;
char c;
int main()
{scanf("%d",&n);for (int i=1;i<=n;i++)for (int j=1;j<=n;j++){f[i][j]=f[i-1][j]+f[i][j-1]-f[i-1][j-1];//求f[i][j]cin>>c;//输入if(c=='#') f[i][j]++;//判断是否有巧克力}for (int i=1;i<=n;i++)for (int j=1;j<=n;j++){t=min(min(f[i][j],f[i][n]-f[i][j]),min(f[n][j]-f[i][j],f[n][n]-f[i][n]-f[n][j]+f[i][j]));//记录下来if (t>=ans)//判断是否更优{ans=t;//代替x=i;//记录y=j;//记录}}printf("%d\n%d %d",ans,x,y);//输出return 0;
}

【模拟】生日蛋糕(jzoj 1613)相关推荐

  1. JZOJ 5372. 【NOIP2017提高A组模拟9.17】猫

    Description 信息组最近猫成灾了!隔壁物理组也拿猫没办法.信息组组长只好去请神刀手来帮他们消灭猫.信息组现在共有n 只猫(n 为正整数),编号为1 到n,站成了一个环,第i 只猫的左边是第i ...

  2. [jzoj NOIP2018模拟 11.01]

    很庆幸打了这场模拟赛,因为这一场爆零 好像上次纪中的某场比赛我也出现了同样的问题,光是计算时间复杂度而忘记了空间的限制.想必是比上次惨的,考场上就写了两题而这两题都因为MLE爆零了.而且我T2还码了7 ...

  3. 【模拟】交换(jzoj 1518)

    交换 jzoj 1518 题目大意: 有两个字符串(只包含'R''G''B'三个字符,且相邻的字符互不相同),现在要交换两个字符串中的一个数,使两个字符串内都各有3个连续且相同的字符,问有多少种换法 ...

  4. JZOJ 7066. 【2021.4.24 NOI模拟】ehzeux与圆周(DP)

    JZOJ 7066. [2021.4.24 NOI模拟]ehzeux与圆周 题目大意 圆周上有2∗n2*n2∗n个点,两两相连构成nnn个点对,其中有mmm个点对已经连好,求所有方案下的连通块数量和. ...

  5. JZOJ 6481. 【GDOI2020模拟02.22】黎曼几何(矩阵乘法)

    JZOJ 6481. [GDOI2020模拟02.22]黎曼几何 题解 设fn,1f_{n,1}fn,1​和fn,2f_{n,2}fn,2​分别表示将nnn个硬币移动111格和222格的最小步数, 推 ...

  6. JZOJ 7036. 2021.03.30【2021省赛模拟】凌乱平衡树(平衡树单旋+权值线段树)

    JZOJ 7036. 2021.03.30[2021省赛模拟]凌乱平衡树 题目大意 给出两棵Treap,大小分别为 n , m n,m n,m,每个点的 p r i o r i t y priorit ...

  7. JZOJ 5814. 【NOIP提高A组模拟2018.8.14】 树

    梦游中的你来到了一棵 N 个节点的树上. 你一共做了 Q 个梦, 每个梦需要你从点 u 走到点 v 之后才能苏醒, 由于你正在梦游, 所以每到一个节点后,你会在它连出去的边中等概率地选择一条走过去, ...

  8. JZOJ 5820. 【NOIP提高A组模拟2018.8.16】 非法输入

    Description 在算法竞赛中,题目一般保证了输入数据的合法性.然而在工程开发中,我们往往不期望程 序得到的输入都是合法的. D 君正忙着向校内 OJ 添加题目,在写了第 233 个 val.c ...

  9. JZOJ 5623. 【NOI2018模拟4.2】program

    Description Input Output Sample Input 10 5 8>6<2<>54< 4 7 1 10 4 4 2 9 8 10 Sample Ou ...

最新文章

  1. 电脑硬盘是干什么用的_电脑硬盘位不够用?有了它就不担心、奥睿科硬盘柜体验...
  2. xcode5 delete provisioning profile
  3. python数据写入表格生成图片_python带表格图片生成封装
  4. ListView与GridView优化
  5. PIP scrapydo时报错ERROR: Command errored out with exit status 1: python setup.py egg_info Check the log
  6. java使用org.w3c.dom解析XML文档,创建、增删查改,保存,读取,遍历元素等操作
  7. 在java中转义符 n代表什么_在Java中,表示换行符的转义字符是()。 A.\nB.\fC.n D.\ddd...
  8. 【边缘检测】基于matlab蚁群算法图像边缘检测【含Matlab源码 1189期】
  9. 指导老师对计算机论文的评语,指导老师对论文的评语
  10. AirServer投屏轻松地将iPhone、iPad投屏到Mac上面教程
  11. linux 复制文件加后缀,linux shell 取文件名后缀
  12. Android系统固件包解包、修改(涉及root提权)、打包
  13. 共享自习室创业项目分析
  14. 输入一个小写,输出大写字母
  15. Python用selenium爬取高德地图商家数据
  16. java反射的优缺点_Java反射机制的优缺点
  17. vba 添加outlook 签名_调用Outlook发送邮件-附带签名
  18. 细雨算法升级,针对B2B领域低质内容
  19. 电子游戏销售数据分析(基于Python+Tableau)
  20. 音频和视频批量合并,及格式转换

热门文章

  1. python中summary_python summary_study.py
  2. Java pdf文件传输_java中pdf文件的管理(pdf文件转png文件,base64传输文件以及删除)...
  3. 文件 单片机_如何查看你写的单片机程序有多大?
  4. C++ 学习之旅(13)——枚举enum
  5. C++ 学习之旅(1)——编译器Compiler
  6. [PAT乙级]1043 输出PATest
  7. UVA - 839 Not so Mobile
  8. jsbridge实现及原理_JSBridge 实现原理解析
  9. mysql 中如何删除重复的数据_mysql如何快速删除重复的数据
  10. HDU - 6975 Forgiving Matching FFT匹配字符串