首页 > 其他分享 >动态规划——悬线法

动态规划——悬线法

时间:2023-09-21 09:56:28浏览次数:26  
标签:动态 悬线法 int char include 规划

动态规划——悬线法

P4147 玉蟾宫

 1 //动态规划——悬线法
 2 #include<iostream>
 3 #include<cmath>
 4 using namespace std;
 5 const int N=1010;
 6 int n,m;
 7 char a[N][N];
 8 int h[N][N];//保存高度
 9 int l[N][N],r[N][N];
10 int main() {
11     cin>>n>>m;
12     for(int i=1; i<=n; i++) {
13         for(int j=1; j<=m; j++) {
14             cin>>a[i][j];
15             if(a[i][j]=='F') h[i][j]=1;
16             l[i][j]=r[i][j]=j;
17         }
18     }
19     for(int i=1; i<=n; i++) {
20         for(int j=2; j<=m; j++) {//处理本行关系
21             if(a[i][j]=='F'&&a[i][j-1]=='F') l[i][j]=l[i][j-1];
22         }
23         for(int j=m-1; j>=1; j--) {
24             if(a[i][j]=='F'&&a[i][j+1]=='F') r[i][j]=r[i][j+1];
25         }
26     }
27     int ans=0;
28     for(int i=1; i<=n; i++) {
29         for(int j=1; j<=m; j++) {
30             if(a[i][j]=='F'&&a[i-1][j]=='F')  {
31                 h[i][j]=h[i-1][j]+1;
32                 l[i][j]=max(l[i][j],l[i-1][j]);
33                 r[i][j]=min(r[i][j],r[i-1][j]);
34             }
35             if(a[i][j]=='F') ans=max(ans,h[i][j]*(r[i][j]-l[i][j]+1));
36         }
37     }
38     cout<<ans*3;
39     return 0;
40 }

 

标签:动态,悬线法,int,char,include,规划
From: https://www.cnblogs.com/mantou20210331/p/17719181.html

相关文章

  • 6.3 应用动态内存补丁
    动态内存补丁可以理解为在程序运行时动态地修改程序的内存,在某些时候某些应用程序会带壳运行,而此类程序的机器码只有在内存中被展开时才可以被修改,而想要修改此类应用程序动态补丁将是一个不错的选择,动态补丁的原理是通过CreateProcess函数传递CREATE_SUSPENDED将程序运行起来并暂......
  • Vue动态组件、插槽、vue项目
    一、动态组件1、动态组件#<component:is="who"></component>#component标签的is属性等于组件名字,这里就会显示这个组件<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title>......
  • mybatis实现多字段动态排序
    背景在复杂项目中,可能会对数据表多个字段进行排序,不理解的话可结合需求看。需求现在有一张User表男同学先按age降序排序,后按height降序排序,最后按id升序排序女同学先按age升序排序,后按weight降序排序,最后按id升序排序不合理?现实可能就是这么的不合理。实现排序对(字段......
  • PPT| 汽车制造行业企业数智化战略规划 P144
       随着信息技术和智能制造技术的不断发展,汽车制造业正在经历数字化和智能化转型,汽车数智化已成为汽车行业的重要趋势。汽车数智化是指通过数字化、智能化、互联化等技术手段,将汽车制造过程数字化,实现生产、研发、销售、售后等各个环节的高效协同,以提升汽车行业的生产效率、......
  • 动态组件
    动态组件component标签的is属性等于组件名字,这里就会显示这个组件组件切换方法一:<body><divid="app"><button@click="who='home'">首页</button><button@click="who='shopping'">购物界面</button><bu......
  • JS实现table动态生成过程中,移动行checkbox值丢失问题的解决
     最近在做项目过程中遇到这样一个疑问:(查看实例代码TEST1)DHTML中table对象的moveRow方法实现对table中表格行移动到新位置。例子TEST1中行2包含文本框、复选框、下拉框,当分别键入值后对行2执行上移操作后,我们发现,文本框与下拉框的值不会丢失,但复选框值会丢失。而如果在行2中键......
  • Linux 动态库符号冲突
    问题起源在Linux下编译动态库的时候,所有的符号默认都是导出的,也就是动态库中的函数名,类名等,在外部都是可见的。当程序引用多个动态库时,由于各个动态库可能属于不同的团队来开发,不同团队使用相同的第三方库的可能性也是有的(例如openssl,libcurl,cjson等),不同的团队使用的第三方......
  • [代码随想录]Day49-动态规划part17
    题目:647.回文子串思路:整体上是两种,就是s[i]与s[j]相等,s[i]与s[j]不相等这两种。当s[i]与s[j]不相等,那没啥好说的了,dp[i][j]一定是false。当s[i]与s[j]相等时,这就复杂一些了,有如下三种情况情况一:下标i与j相同,同一个字符例如a,当然是回文子串情况二:下标i与j相差为1,例如aa......
  • vue-动态组件、插槽
    动态组件方法一:笨方法-切换组件:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title><scriptsrc="js/vue.js"></script></head><body>......
  • 类动态加载
    类动态加载类加载与反序列化反序列是利用的readObject()​方法重写,而类加载是为什么?类加载Java程序在运行前需要先编译成class文件​,Java类初始化的时候会调用java.lang.ClassLoader​加载类字节码,ClassLoader​会调用JVM的native方法(defineClass0/1/2​)来定义一......