题目: P4147 玉蟾宫: https://www.luogu.org/problemnew/show/P4147

    P1169 [ZJOI2007]棋盘制作: https://www.luogu.org/problemnew/show/P1169


题目本质为求解矩阵中的最大子矩阵。

方法为:悬线法(具体参考: https://blog.csdn.net/Clove_unique/article/details/50512624 等相关文章)

建议手画一遍帮助理解。

P4147 玉蟾宫 的AC代码:

 1 //
 2 #include <bits/stdc++.h>
 3 using namespace std;
 4 typedef long long ll;
 5 #define ri register ll
 6
 7 ll n,m,end;
 8 bool a[1005][1005];
 9 ll L[1005][1005],R[1005][1005],H[1005][1005];
10 ll l[1005][1005],r[1005][1005];
11 char s;
12
13 signed main()
14 {
15     ios::sync_with_stdio(0),cin.tie(0);
16     cin>>n>>m;
17     for(ri i=1;i<=n;i++)
18     {
19         for(ri j=1;j<=m;j++)
20         {
21             cin>>s;
22             if(s=='F')
23             {
24                 a[i][j]=1;
25             }
26         }
27     }
28     for(ri i=0;i<=n;i++)
29     {
30         ri t=0;
31         for(ri j=1;j<=m;j++)
32         {
33             if(a[i][j]) l[i][j]=t;
34             else L[i][j]=0,t=j;
35         }
36         t=m+1;
37         for(ri j=m;j>=1;j--)
38         {
39             if(a[i][j]) r[i][j]=t;
40             else R[i][j]=m+1,t=j;
41         }
42     }
43     for(ri i=1;i<=n;i++)
44     {
45         for(ri j=1;j<=m;j++)
46         {
47             if(a[i][j])
48             {
49                 H[i][j]=H[i-1][j]+1;
50                 L[i][j]=max(L[i-1][j],l[i][j]+1);
51                 R[i][j]=min(R[i-1][j],r[i][j]-1);
52                 end=max(end,(R[i][j]-L[i][j]+1)*H[i][j]);
53             }
54         }
55     }
56     cout<<end*3<<'\n';
57     return 0;
58 }
59 //

注意事项:

  28行最外层循环一定从0开始,因为处理第1行要用到第0行的数据。

  34,40行一定要将L和R的值赋在两边,原因手动模拟一遍即可知。

  50,51行调用l与r一定要将l+1,r-1。

另外:

  在 P1169 [ZJOI2007]棋盘制作 中:

    首先是对于图上所有的棋盘一定属于以下两种类型:

      1.黑格行列奇偶性相同,白格不同。

      2.白格行列奇偶性相同,黑格不同。

    那么在输入的时候属于第一种情况的赋1,属于第二种情况的赋0。

    统计最大的1或0矩形和正方形就可以啦。

转载于:https://www.cnblogs.com/leprechaun-kdl/p/11015999.html

洛谷 P4147 玉蟾宫 P1169 [ZJOI2007]棋盘制作(求最大子矩阵)相关推荐

  1. 洛谷P4147 玉蟾宫(单调栈解决)

    题目 题目链接 题目背景 有一天,小猫 rainbow 和 freda 来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地. 题目描述 这片土地被分成 N\times ...

  2. 洛谷 P4147 玉蟾宫【悬线法/单调栈】

    题目背景 有一天,小猫 rainbow 和 freda 来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地. 题目描述 这片土地被分成 N×MN\times MN×M ...

  3. 刷题记录:洛谷P4147玉蟾宫

    传送门:洛谷 题目描述: 这片土地被分成 N × M N\times M N×M 个格子,每个格子里写着 'R' 或者 'F',R 代表这块土地被赐予了 rainbow,F 代表这块土地被赐予了 fr ...

  4. 洛谷 P4147 玉蟾宫

    这好像是一道悬线法的题目,但是我不会,只能用单调栈水过了 我们将ai,ja_{i,j}ai,j​定义为从(i,j)(i,j)(i,j)出发向上(坐标减小)可以达到的最长的.没有R的路径 比如说样例 5 ...

  5. 洛谷 P4147 玉蟾宫 题解【悬线dp】

    原题地址 蛤,今天正好学习一下悬线dp,写了个板子题. 用 l [ i ] [ j ] l[i][j] l[i][j]表示能延伸的最左的位置的列, r [ i ] [ j ] r[i][j] r[i] ...

  6. 洛谷 P1169 [ZJOI2007]棋盘制作

    题目链接 P1169 [ZJOI2007]棋盘制作 题目描述 国际象棋是世界上最古老的博弈游戏之一,和中国的围棋.象棋以及日本的将棋同享盛名.据说国际象棋起源于易经的思想,棋盘是一个8×8大小的黑白相 ...

  7. 洛谷4147 玉蟾宫

    题目背景 有一天,小猫rainbow和freda来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地. 题目描述 这片土地被分成N*M个格子,每个格子里写着'R'或者'F ...

  8. 洛谷P4147玉某宫(最大矩阵好题)

    题目描述 这片土地被分成N*M个格子,每个格子里写着'R'或者'F',R代表这块土地被赐予了rainbow,F代表这块土地被赐予了freda. 现在freda要在这里卖萌...它要找一块矩形土地,要求 ...

  9. P1169 [ZJOI2007]棋盘制作(悬线法)

    题目描述 国际象棋是世界上最古老的博弈游戏之一,和中国的围棋.象棋以及日本的将棋同享盛名.据说国际象棋起源于易经的思想,棋盘是一个8 \times 88×8大小的黑白相间的方阵,对应八八六十四卦,黑白 ...

最新文章

  1. R语言ggplot2可视化:通过水平半小提琴图(Horizontal Half Violin Plots)和抖动数据点( jittered data)可视化雨云图(Rain Cloud plots)
  2. Oracle OEM 配置报错: No value was set for the parameter DBCONTROL_HTTP_PORT 解决方法
  3. 在linux下给grep命令添加颜色
  4. hdu4004 The Frog's Games 二分
  5. JS----JavaScript中函数
  6. 辉光UIView的category
  7. JVM选项:-client vs -server
  8. 【codevs2497】 Acting Cute
  9. 超文本引用href的几种用法
  10. python的输出函数_Python
  11. java游戏应龙女魃转世_应龙和女魃的凄美爱情,究竟是爱情,还是阴谋?
  12. 运算、函数、数组的了解
  13. checksum命令 linux,Windows相当于linux cksum命令
  14. python初学者编程指南源码_适合新手的开源项目(Python 篇)
  15. C#中用WinAPI调用外部程序
  16. gx works2产品id_gx works2中文版下载|
  17. 中文输入纠错任务整理
  18. Jack Lin tools 3Dmax批渲染插件
  19. 基于51单片机的16键电子琴音乐盒仿真原理图方案设计
  20. 【Unity使用UGUI实现王者荣耀UI界面(四)】游戏开始界面

热门文章

  1. windows10 解决打开下载文件夹很慢的问题
  2. Apkbus不错的源码汇总
  3. XTU 1235 CQRXLB 2015嘉杰信息杯 湘潭赛
  4. java后台导出Excel表格
  5. C#上位机与单片机的完美结合(内附有用户登录,注册,截图,温度采集,历史数据展示,左边菜单右边内容展示的主界面)
  6. 【Vue全家桶】新一代的状态管理--Pinia
  7. ngix详解及安装和配置
  8. 字体的故事:简单为美的 Helvetica
  9. Vc - Qt - 实现加载图片并显示到窗口中
  10. oracle ecc 是什么意思,使用ECC的身份混合签密方案