当前位置: 首页 > news >正文

如何让百度搜到自己的网站找客源用哪个软件好

如何让百度搜到自己的网站,找客源用哪个软件好,苏州建站模板厂家,做网站开发的需求文档题目描述 小杨有一个 n 行 m 列的网格图,其中每个格子要么是白色,要么是黑色。 小杨想知道至少包含 k 个黑色格子的最小子矩形包含了多少个格子。 输入格式 第一行包含三个正整数 n,m,k,含义如题面所示。 之后 n 行,每行⼀个…

题目描述

小杨有一个 n 行 m 列的网格图,其中每个格子要么是白色,要么是黑色。

小杨想知道至少包含 k 个黑色格子的最小子矩形包含了多少个格子。

输入格式

第一行包含三个正整数 n,m,k,含义如题面所示。

之后 n 行,每行⼀个长度为 m 的 01 串,代表网格图第 i 行格子的颜色,如果为 0,则对应格子为白色,否则为黑色。

输出格式

输出一个整数,代表至少包含 k 个黑色格子的最小子矩形包含格子的数量,如果不存在则输出 0。

输入输出样例

输入 #1

4 5 5
00000
01111
00011
00011

输出 #1

6

说明/提示

样例解释

对于样例 1,假设 (i,j) 代表第 i 行第 j 列,至少包含 5 个黑色格子的最小子矩形的四个顶点为 (2,4),(2,5),(4,4),(4,5),共包含 6 个格子。

数据范围

对于全部数据,保证有 1≤n,m≤100,1≤k≤n×m。

子任务编号得分n,m
120≤10
240n=1,1≤m≤100
340≤100

做法一:暴力

#include <iostream>
using namespace std;int s[110][110];
int main()
{int n,m,k;cin>>n>>m>>k;for(int i=1;i<=n;i++)for(int j=1;j<=m;j++){char c;cin>>c;s[i][j]=s[i][j-1]+s[i-1][j]-s[i-1][j-1]+(c=='1');}int maxn=2e9;for(int r1=1;r1<=n;r1++)for(int r2=r1;r2<=n;r2++)for(int c1=1;c1<=m;c1++)for(int c2=c1;c2<=m;c2++){int area=(r2-r1+1)*(c2-c1+1);int b=s[r2][c2]-s[r1-1][c2]-s[r2][c1-1]+s[r1-1][c1-1];if(b>=k&&area<maxn)maxn=area;}cout<<(maxn<2e9?maxn:0);return 0;
}

搞一个二位前缀和暴力,打擂台,无了,但是O(n⁴),这道题数据小能过。

---------------------------------------------------------------------------------------------------------------------------------

做法二:二分 

#include <iostream>
using namespace std;int n,m,k,r1,r2,s[110][110];
int f(int a,int b,int c,int d)
{return s[b][d]-s[a-1][d]-s[b][c-1]+s[a-1][c-1];
}
bool check(int mid)
{for(int l=1;l+mid-1<=m;l++){int r=l+mid-1;int b=f(r1,r2,l,r);if(b>=k)return true;}return false;
}
int bs()
{int l=1,r=m;while(l<r){int mid=(l+r)/2;if(check(mid))r=mid;elsel=mid+1;}return l;
}
int main()
{cin>>n>>m>>k;for(int i=1;i<=n;i++)for(int j=1;j<=m;j++){char c;cin>>c;s[i][j]=s[i][j-1]+s[i-1][j]-s[i-1][j-1]+(c=='1');}int minx=2e9;for(r1=1;r1<=n;r1++)for(r2=r1;r2<=n;r2++){if(f(r1,r2,1,m)<k)continue;int w=bs();int area=(r2-r1+1)*w;if(area<minx)minx=area;}cout<<(minx==2e9?0:minx);return 0;
}

做法:

        1.二层循环固定r1和r2。

        2.二分查找,找宽度(即c1和c2差)。

        3.check里枚举所有可能,有一个满足就return true。

        4.二层循环*二分*check,复杂度O(n³logn)。

细节:

        1.写一个f函数算二维区间和,简洁还能偷懒o(* ̄▽ ̄*)ブ

        2.由于是二分,必须保证两头至少一个是true,不然会出错,所以要提前判断这个r1和r2的最大区间够不够k个,不够continue。

http://www.yayakq.cn/news/948139/

相关文章:

  • 网站管理办法制度网站怎么做构成
  • 昆山网站建设详细方案免费wordpress主题分享
  • 贵阳网站建设方案维护在实际工作中最常用的网页制作工具
  • 找家里做的工作上哪个网站建设银行官方网网址
  • 友汇网网站建设管理后台网站嵌入式软件开发工程师是做什么的
  • 网站建设外包工作采集1024图片到wordpress
  • 苏州网站开发公司有哪些id注册网站
  • 做旅游网站毕业设计做服装哪个网站图片多
  • 河西做网站在网上做广告怎么做
  • 天津做app和网站的公司成品网站seo
  • 做公司网站的公司有哪些广州网站制作实力乐云seo
  • 手机自适应网站建设六安论坛六安杂谈
  • 北京企业网站seo平台wordpress文章不能分段
  • 网站开发有没有前途郑州代理记账
  • 成都分类信息网站开发佛山做seo推广公司
  • 400电话申请网站源码程序深圳注册公司条件
  • 怎么用文本做网站北京网站制作公司建站
  • 园区网站建设目的页面设计在哪儿
  • 有免费做理化试验的网站吗桂林网站建设服务电话
  • 云南建设项目审批中心网站如何申请免费网站空间
  • 投票网站建设东莞做网站乐云seo
  • 建设网站范文公建设计网站
  • 做那种网站wordpress移动端底部广告
  • 建设电子商务网站论文网站后台程序和数据库开发
  • 网站设计实例网红营销论文
  • 电子邮箱网站建设wordpress 上一页 下一页
  • 网站制作复杂吗建设银行通控件网站
  • 如何查看网站服务器时间wordpress自定义搜索框
  • 无锡电子商城网站设计微擎可以做企业网站吗
  • 重庆网站建设哪里有做设计转钱网站