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

【题解】 [MX-X19-T2 LAOI-14] SPECIALZ

题目描述

题目大意

给定正整数 \(n, m\),求一个矩阵 \(A\) 满足:

  • 矩阵的每一行 \(A_i = (A_{i, 1}, \ldots, A_{i, m})\)\(1 \le i \le n\))均为 \(1 \sim m\) 的排列
  • 按题面所示的移动方式使得路径上的数字之和最小。
    • 在该移动方式中,就是在同一行、当前位置往左数 \(k_x\) 个、往右数 \(k_x\) 个之间的位置中,找到数值最大的位置并瞬移再向下移动一格。初始位置为 \((1, 1)\)

思路

本题主要考察:贪心

在该移动方式中,就是在同一行、当前位置往左数 \(k_x\) 个、往右数 \(k_x\) 个之间的位置中,找到数值最大的位置并瞬移再向下移动一格。
从上一行移动下来的位置的数字必定为1。
那么若当前位置往左数 \(k_x\) 个、往右数 \(k_x\) 个之间的位置中并不会超越边界,必定是将 \(1 \sim m\) 中小的数放在这些位置上。
所以,如果可以瞬移到的位置固定,那么答案也将固定,将取决于可以瞬移到的位置的个数。

因此,想要使得路径上的数字之和最小,就要利用边界减小可以瞬移到的位置的个数。

至此,贪心策略就显而易见了:
每一行初始的位置(从上一行下来的位置)的数字为1,之后瞬移的位置尽量选择靠近左边界或右边界。若无法瞬移至左边界或右边界,那就选择距离左边界或右边界1格的位置。

具体细节见代码注释。

代码

#include <bits/stdc++.h>
using namespace std;typedef long long LL;
typedef unsigned int UINT;
typedef unsigned long long ULL;typedef pair<int, int> PII;
typedef pair<LL, LL> PLL;
#define x first
#define y secondconst int N = 5e5 + 5;
int n, m;
int a[N];signed main()
{scanf("%d%d", &n, &m);for (int i = 1; i <= n; i ++ )scanf("%d", &a[i]);LL res = 0; // res 储存答案bool flag = true; // flag 表示 当前位置是否为左边界或右边界for (int i = 1; i <= n; i ++ ){res ++ ; // 从上一行下来的位置的数字为1,记录答案if (flag) // 若当前位置是边界{res += min(a[i], m - 1) + 1; // min(a[i], m - 1) + 1 为 可以瞬移到的位置的个数if (a[i] >= m - 1) flag = true; // 如果当前位置可以瞬移至边界,那么就瞬移至边界else flag = false; // 否则,瞬移至与边界的距离为1的位置}else // 若当前位置与边界的距离为1{res += min(a[i], m - 2) + 2; // min(a[i], m - 2) + 2 为 可以瞬移到的位置的个数flag = true; // 因为 a[i]>= 1,所以当前位置必定可以瞬移至边界}}printf("%lld\n", res); // 输出答案return 0; // 完结撒花
}
http://www.sczhlp.com/news/75945/

相关文章:

  • 商业API接口源码
  • 网站正在维护中啥意思网上的推广公司
  • 自己做的网站打不开怎么搞如何建设企业网站呢
  • 搭建网站需要钱吗站群cms
  • 深圳高端网站建设美工做网站基本流程
  • 湖北建设厅网站首页永修县建设局网站
  • 公司做网站怎么做账做视频网站违法
  • 北京 网站定制开发营销型网站图片
  • 做商业地产常用的网站博兴网站建设
  • 做壁纸壁的网站有什么区块链开发技术
  • HCIA回顾—8 IP路由基础
  • 梯度下降法简介
  • 子集及相关算法
  • 做淘宝客怎么建网站青岛网站排名优化
  • 网站模板asp网站工信部实名认证中心
  • 做网站的分页查询建设网站的网站空间
  • 怎样建立一个网站网上怎样查询企业资质
  • html5微网站开发教程山东临沂网站设计公司
  • 公司网站建设费用如何做账国内建设地铁的公司网站
  • 营销企业网站建设步骤公司做网站推广
  • 西安优化网站公司深圳网站设计公司设计
  • 游戏设置面板
  • ARC 205
  • 制作微网站多少钱百度只收录栏目不收录网站文章
  • 做网站金山一级造价工程师含金量
  • 网站优化工作安排wordpress主题安装后空白
  • 无锡网站App微信网站建设 中国联盟网
  • ARM版Windows系统选哪个结构:全面指南与建议
  • 如何在iPhone与Windows系统间轻松切换
  • netlify部署vitepress项目