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

聊城手机网站服务百度优化

聊城手机网站服务,百度优化,网页设计与网站建设第04章在线测试,利用wps做网站题目大意 给你一个矩阵,每个格子是0-9之间的任何一个元素,现在对于0-9这10个不同的数,要在矩阵内构造出最大的三角形 每个三角形的定义如下,设当前要构造的是第 d d d个数的最大三角形: 该三角形的三个顶点都要是数d …

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

题目大意

给你一个矩阵,每个格子是0-9之间的任何一个元素,现在对于0-9这10个不同的数,要在矩阵内构造出最大的三角形
每个三角形的定义如下,设当前要构造的是第 d d d个数的最大三角形:
该三角形的三个顶点都要是数d
必须有一条边平行于矩阵
在每次构造三角形的时候可以把矩阵内任意一个点的大小改为d,构造完后改回(每次构造之间修改不影响)
为了简便计算,求三角形面积时不需要/2,直接 底*高 即可

思路1

其实只需要确定两个点的位置,剩下一个点因为可以任意取一个点,所以关键是怎么选择其中两个点,对于第d个数,如果点的数量<=1,那么修改一个也不够凑成三角形,直接输出0

否则记录每个点的x,y坐标,
首先考虑垂直边平行于坐标轴的情况(两个点x值相等),遍历所有点,
对于相同元素d的点按行坐标进行递增排序
则以垂直边为底的高的最大值就是:

最后一个点减去当前点的横坐标 最后一个点减去当前点的横坐标 最后一个点减去当前点的横坐标 当前点的横坐标减去第一个点的横坐标 当前点的横坐标减去第一个点的横坐标 当前点的横坐标减去第一个点的横坐标
的最大值(不太严谨的可以将当前点看做中点,取左边或者右边),

那么这条平行边的最大值就是 当前点离x轴的距离y或者n-y+1(第三个点的y值)
这样我们就求出了当选择这个点且垂直边平行于坐标轴时的情况,取所有点得出的最大值

然后交换所有点的行和列坐标翻转再来一遍,相当于是求水平边平行于坐标轴的情况

// Author: zengyz
// 2025-06-12 15:55#include <bits/stdc++.h>
#include <iostream>
using namespace std;
using i64 = long long;void solve()
{int n;cin >> n;vector<vector<int>> a(n, vector<int>(n, 0));vector<pair<int, int>> vp[10];for (int i = 0; i < n; i++){for (int j = 0; j < n; j++){char op;cin >> op;a[i][j] =op-'0';vp[a[i][j]].push_back({i, j});}}for (int i = 0; i <= 9; i++){if (vp[i].size() <= 1){cout << "0 " ;}else{int ans=0;for(int k=0;k<2;k++){sort(vp[i].begin(), vp[i].end());for(auto x:vp[i]){int disx=max(vp[i].back().first-x.first,x.first-vp[i][0].first);int disy=max(x.second,n-1-x.second);ans=max(ans,disx*disy);}for(auto &x:vp[i])swap(x.first,x.second);}cout<<ans<<" ";}}cout<<endl;return;
}int main()
{ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);int _T = 1;cin >> _T;while (_T--){solve();}return 0;
}

思路2

先考虑水平边平行于x轴的情况
考虑一个点(x,y),设第三个点会与这个点平行,因为可以任取,所以既可以在最左边长度为(1,y),也可以在最右边(n,y)
那么取max(x,n-x+1)那么剩下一个点就取离这条平行边最远的一个点,设构造第d个三角形时垂直方向出现过的最大值ya和最小值yi,则有高为max(ya-j,j-yi)
那么答案就是 m a x ( x , n − x + 1 ) ∗ m a x ( y a − j , j − y i ) max(x,n-x+1)*max(ya-j,j-yi) max(x,nx+1)max(yaj,jyi)

竖直方向同理

// Author: zengyz
// 2025-06-12 15:55#include <bits/stdc++.h>
#include <iostream>
using namespace std;
using i64 = long long;void solve()
{int n;cin >> n;vector<vector<int>> a(n, vector<int>(n, 0));vector<int> xi(10, 1e9), xa(10), yi(10, 1e9), ya(10), ans(10);for (int i = 0; i < n; i++){for (int j = 0; j < n; j++){char op;cin >> op;int now = op - '0';a[i][j] = now;xi[now] = min(xi[now], i);xa[now] = max(xa[now], i);yi[now] = min(yi[now], j);ya[now] = max(ya[now], j);}}for (int i = 0; i < n; i++){for (int j = 0; j < n; j++){int now = a[i][j];ans[now] = max(ans[now], max(i, n - 1 - i) * max(ya[now] - j, j - yi[now]));ans[now] = max(ans[now], max(j, n - 1 - j) * max(xa[now] - i, i - xi[now]));}}for (int i = 0; i <= 9; i++)cout << ans[i] << " ";cout << endl;return;
}int main()
{ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);int _T = 1;cin >> _T;while (_T--){solve();}return 0;
}
http://www.dtcms.com/wzjs/244011.html

相关文章:

  • 樊城网站建设各大网站提交入口
  • 网站建设怎么找客户资源做销售有什么技巧和方法
  • 网站建设 制作公司蜂蜜网络营销推广方案
  • 完整版网站推广方案产品宣传方式有哪些
  • 深圳地铁公司网站沈阳专业seo关键词优化
  • 医院网站建设考试答案整合营销传播最基础的形式是
  • 网站301重定向网络营销的发展趋势
  • 网站搭建app怎么注册网站平台
  • 热 网站正在建设中各大搜索引擎入口
  • 高级营销型网站建设最新疫情新闻100字
  • 四川做网站优化价格怎么找需要做推广的公司
  • 网站建设赠送seo抖音广告推广
  • 个人做涉黄网站什么罪无安全警告的浏览器
  • 怎样建设相亲网站可以做产品推广的软件有哪些
  • 江苏 做网站行业网站
  • 武汉便宜网站建设注册推广团队
  • 沂水做网站私人网站服务器
  • 如何建立自己生活网站深圳高端seo公司助力企业
  • 电子商城网站开发太原seo自媒体
  • 网站开发工具 n宁波免费建站seo排名
  • 济南 网站建设 域名注册东莞网络排名优化
  • asp.net 网站运行助手厦门小鱼网
  • 南宁有做网站的公司吗北京seo百度推广
  • 石家庄最新疫情最新消息轨迹seo推广软件哪个好
  • 怎么做 代刷网站百度指数搜索指数的数据来源
  • 东拼西凑网站谁做的优化seo可以从以下几个方面进行
  • 兰州拼团网站建设上海网站建设哪家好
  • 大型的建设工程类考试辅导网站网站维护收费标准
  • 做淘宝要用的网站爱站网关键词查询
  • 网站怎么样做优化沧州网络推广外包公司