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

三乡有做网站的师傅吗资源搜索引擎搜索神器网

三乡有做网站的师傅吗,资源搜索引擎搜索神器网,在哪个网站可以做任务赚钱的,手机网价格直降小美的平衡矩阵 写在前面: 本博客只是一种解题思路的提供。 小美的平衡矩阵 题目描述: 小美拿到了一个n*n 的矩阵,其中每个元素是 0 或者 1。 小美认为一个矩形区域是完美的,当且仅当该区域内 0 的数量恰好等于 1 的数量。 现在&#xf…

小美的平衡矩阵


写在前面:
本博客只是一种解题思路的提供。

小美的平衡矩阵

题目描述:

小美拿到了一个n*n 的矩阵,其中每个元素是 0 或者 1。
小美认为一个矩形区域是完美的,当且仅当该区域内 0 的数量恰好等于 1 的数量。
现在,小美希望你回答有多少个i*i的完美矩形区域。你需要回答1<=i<=n的所有答案。

输入描述

第一行输入一个正整数n,代表矩阵大小。
接下来的n行,每行输入一个长度为n的01 串,用来表示矩阵。

输出描述

输出n行,第i行输出的I*I 完美矩形区域的数量。

示例 1
输入
4
1010
0101
1100
0011
输出
0
7
0
1

思路:

  • 符合条件的矩阵的边一定是偶数,只有偶数才能保证 0和1的数量相等

  • 确定一个矩阵只需要确定这个矩阵的四个顶点中的一个和边长m,这里选择右下角的顶点

  • a r r [ i ] [ k ] arr[i][k] arr[i][k] 记录了原始输入的 n ∗ n n*n nn的矩阵

  • d p [ m ] [ i ] [ k ] dp[m][i][k] dp[m][i][k] 的含义是 当边长为 m 时 , 右下角为 a r r [ i ] [ k ] 时的矩阵内数字和 当边长为m时,右下角为arr[i][k]时的矩阵内数字和 当边长为m,右下角为arr[i][k]时的矩阵内数字和

  • 当矩阵内和为矩阵元素个数一半时,他是平衡矩阵。也就是说 当 m 2 2 = = d p [ m ] [ i ] [ k ] 时 \frac{m^2}{2} == dp[m][i][k]时 2m2==dp[m][i][k] ,这个矩阵是平衡矩阵

这里放一个 d p [ i ] [ k ] dp[i][k] dp[i][k]的版本,此时 d p [ i ] [ k ] dp[i][k] dp[i][k]的含义为:以 a r r [ 1 ] [ 1 ] arr[1][1] arr[1][1]为左上元素, a r r [ i ] [ k ] arr[i][k] arr[i][k]为右下角元素的这个框内的所有元素和,此时的平衡矩阵的个数并不在dp中保存,而是作为一个临时变量存储(这一点切记)。

#include<iostream>
#include<vector>
#include<string>
using namespace std;int main(){int N,n,i=1,k;// N用于控制输入,n用于控制输出,i和k用于访问数组的元素cin>>N;string s;// 用于记录输入的01串n = N;vector<vector<int>> arr(N+1,vector<int>(N+1));vector<vector<int>> dp(N+1,vector<int>(N+1));while(N--){k = 1;while(k<=n){cin>>s;for(char ch:s){// 遍历01串中的每个字符,将其数字放入arr中arr[i][k++] = ch-'0';}++i;}}// 计算dp数组for(i = 1;i<=n;++i){for(k = 1;k<=n;++k){dp[i][k] = dp[i-1][k]+dp[i][k-1]-dp[i-1][k-1]+arr[i][k];            }}for(int m = 1;m<=n;++m){// 矩阵边长为1开始遍历,直到边长为nint ans = 0;if(m%2==0){// 只有边长为偶数的矩阵内才有可能使得 0和1的数目相等,保证可能存在平衡矩阵for(i = 1;i<=n;++i){for(k = 1;k<=n;++k){if(i>=m&&k>=m){unsigned long long num = dp[i][k]-dp[i-m][k]-dp[i][k-m]+dp[i-m][k-m];if(num==m*m/2)ans++;}}}}cout<<ans<<endl;}return 0;
}

有什么问题欢迎来讨论。


最开始思路:

d p [ r ] [ q ] [ i ] [ k ] dp[r][q][i][k] dp[r][q][i][k] 保存 以 a r r [ r ] [ q ] arr[r][q] arr[r][q]为左上角 a r r [ i ] [ k ] arr[i][k] arr[i][k] 为右下角的框内的元素和,发现dp的初始化和计算都比较麻烦,而且也计算了很多不符合条件的框(非正方形框)

稍微改进

d p [ m ] [ i ] [ k ] dp[m][i][k] dp[m][i][k] 保存 边长为 m m m时,框的右下角为元素 a r r [ i ] [ k ] arr[i][k] arr[i][k]时的这个框内的所有元素和,刨除了非正方形的框,

最后:

d p [ i ] [ k ] dp[i][k] dp[i][k] ,也就是代码版本

注意:本程序仅由简单测试,主要是提供思路。
http://www.mmbaike.com/news/67222.html

相关文章:

  • 百度网站优化排行网络营销模式包括哪些
  • 创造与魔法官方网站-做自己喜欢的事游戏代理平台有哪些
  • 服装公司介绍怎样给自己的网站做优化
  • 网站开发费用可否计入无形资产免费刷推广链接的软件
  • 网站标签设计seo推广教程
  • 网站建设的公司在哪找东莞疫情最新消息今天又封了
  • 金山专业做网站百度官方官网
  • 网站产品图怎么做的注册域名
  • 做广个公司网站权重国产长尾关键词拘挖掘
  • 中央广播电视总台网站seo优化靠谱吗
  • 杭州外贸网站多少钱hao123文件在哪里
  • 零食网站怎么做网站怎么找
  • 桂林旅游攻略必去景点搜索引擎优化的内容包括
  • 做网络传销网站犯法吗郑州中原区最新消息
  • 做模型的网站有哪些内容百度资源搜索平台官网
  • 一家专门做动漫的网站推广策略
  • 网站建设价格标准案例同仁seo排名优化培训
  • 做网站可以卖别的牌子的产品吗网络营销期末总结
  • 专做民宿的网站seo搜索引擎优化课程
  • 西部数码网站站点贴吧推广
  • 武汉光谷网站建设精准营销理论
  • 网站建设副业最新国际新闻10条
  • 梅州建站哪里好免费二级域名建站
  • 企业官网建站步骤宁波seo关键词
  • 二级网站内容建设要求平台推广员是做什么的
  • 西安最新传染病上海优化网站方法
  • 利用bootstrap做的网站深度优化
  • 加强门户网站建设方案可以商用的电视app永久软件
  • 个人网站开发合同下载百度app下载
  • 郑州专业的网站建设手机刷网站排名软件