cf 154.div2 D. Table with Letters - 2

简介:

D. Table with Letters - 2

 

      今天的比赛题比较奸诈,居然是文件读入的,让A题耽误了很多时间。

   

      这题是dp的一个经典类型,o((n*m)^2)的算法非常好写,但是必然TLE。因为其要求四角均相等,不妨以此为条件进行判断,即可缩为o(n^2*m)算法

 

    /*
    author:jxy
    lang:C/C++
    university:China,Xidian University
    **If you need to reprint,please indicate the source**
    */
    #include <iostream>
    #include <cstdio>
    #include <cstdlib>
    #include <cstring>
    #include <queue>
    #define INF 1E9
    using namespace std;
    int sum[402][402];
    char a[402][402];
    int main()
    {
        freopen("input.txt","r",stdin);
        freopen("output.txt","w",stdout);
        int m,n,K,i,j,t;
        scanf("%d%d%d",&n,&m,&K);
        memset(sum,0,sizeof(sum));
        for(i=1;i<=n;i++)
        {
            getchar();
          for(j=1;j<=m;j++)
          {
              a[i][j]=getchar();
              sum[i][j]=0-sum[i-1][j-1]+sum[i-1][j]+sum[i][j-1];
              if(a[i][j]=='a')sum[i][j]++;
          }
        }
        long long ans=0;
        int now[257],k,p;
        for(i=1;i<=n;i++)
          for(j=i+1;j<=n;j++)
          {
              memset(now,0,sizeof(now));
              for(k=1,p=1;k<=m;k++)
              {
                  if(a[i][k]!=a[j][k])continue;
                  now[a[i][k]]--;
                 // if(p==1)p=k;
                  //cout<<now[a[i][k]]<<endl;
                  while(p<=m&&sum[j][p]+sum[i-1][k-1]-sum[i-1][p]-sum[j][k-1]<=K)
                  {
                      if(a[i][p]==a[j][p])now[a[i][p]]++;
                      p++;
                  }
                  if(now[a[i][k]]>0)ans+=now[a[i][k]];
                  //cout<<now[a[i][k]]<<" --------"<<endl;
              }
          }
        cout<<ans<<endl;
    }


 

目录
相关文章
|
11月前
|
机器学习/深度学习
SVM和SVMR有什么区别
SVM和SVMR有什么区别
567 11
|
网络协议 网络安全 PHP
使用天猫精灵实现计算机WOL网络唤醒
解决笔记本连显示器不想掀盖子开机和远程办公时给公司电脑开机不方便的痛点。
15085 8
使用天猫精灵实现计算机WOL网络唤醒
|
人工智能 安全 搜索推荐
单片机毕业设计|基于stm32智能快递箱设计
随在当今的社会,网上购物以及线下获取快递己经成为日常生活中很重要的一个组成部分,电子商务的发展也带来了快递业的繁荣。这对快递业而言,是一个巨大的发展机遇,同时也是一个不可忽视的挑战。当前,快件运输的安全性越来越受到大家的重视,对快件的服务要求也越来越高。但就目前的快递行业来说,也面临着这样那样的问题,比较经常遇到送快递的到了,业务不在家,取快递时间对不上等。在此基础上,提出了一种以STM32为核心的智能化快递柜。本快递柜的主要功能有,指纹解锁功能,按键功能,警报功能,继电器柜门开锁功能,验证码功能,主要设计加入了指纹解锁功能。本系统以STM32F103为主控芯片,配置了指纹传感、4*4矩阵键盘
479 0
|
12月前
|
Linux 网络安全 数据安全/隐私保护
Linux系统之Centos7安装cockpit图形管理界面
【10月更文挑战第12天】Linux系统之Centos7安装cockpit图形管理界面
377 1
Linux系统之Centos7安装cockpit图形管理界面
|
存储 安全 Cloud Native
阿里云推出创业者计划介绍,加入计划可获得最低3500元,最高100万抵扣金
阿里云创业者计划是面向中小企业推出的一项扶持计划,致力于为中小企业构建智能时代的核心竞争力,同时聚合众多知名投资机构、加速器、孵化器和大企业创新力量,向中小企业提供全方位的赋能与服务。成功加入计划后,阿里云将提供最低3500元、最高100万元的上云抵扣金,让中小企业享受免费的云资源和技术服务,助力初创企业开启智能时代创业新范式。
阿里云推出创业者计划介绍,加入计划可获得最低3500元,最高100万抵扣金
|
Web App开发 Rust JavaScript
分享2020年Github星级前20名JavaScript框架性能比较
之前有在《读 2020 年 Javascript 趋势报告展望 ES2020》介绍了主流的前端库,本文就来看看JavaScript框架之间的终极性能之战
981 0
|
资源调度 JavaScript
ant-design-vue:基础使用
ant-design-vue:基础使用
424 0
|
存储 监控 算法
博途软件的安装与操作、PID控制器
一、博途V16专业版对计算机的软硬件有哪些要求? 二、安装博途时,遇到不停地提示重启,应该如何操作? 三、PID控制系统由哪几部分组成?各有什么作用? 四、S7-1200PID控制器由哪几部分组成?简述各部分之间的关系。
1436 0
博途软件的安装与操作、PID控制器
|
存储
【计算机组成原理】定点数和浮点数
一、概念 1. 定点数 1. 定点小数 2. 定点整数 3. 定点数表示的范围 2. 浮点数 1. 浮点数的表示形式 2. 浮点数的表示范围 3. 浮点数的规格化 二、重点 1. 将十进制数转换为浮点数 2. 将浮点数转换为十进制数
1184 0
【计算机组成原理】定点数和浮点数
|
安全 C#
在阿里云平台注册域名多少钱?域名新注、续费、转入最新收费价格表
在阿里云注册域名多少钱?阿里云可注册的域名后缀多达几百种,域名后缀不同,收费标准不同,通常用户注册比较多的是.com域名、.cn域名、.net域名等,阿里云域名价格表包括域名注册、域名续费及域名转入价格,不同时期的收费价格是不一样的,目前通过阿里云平台注册.com域名最低价格仅需1元,注册.cn域名最低仅需8.8元。下面是小编整理的最新版的阿里云域名新注、续费、转入收费价格表。
3076 0
在阿里云平台注册域名多少钱?域名新注、续费、转入最新收费价格表