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

专业做网站开发阳谷网站建设价格

专业做网站开发,阳谷网站建设价格,公司域名邮箱怎么注册,企业网站建设人员分析一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 1023D - Array Restoration 二、解题报告 1、思路分析 先考虑合法性检查: 对于数字x,其最左位置和最右位置 之间如果存在数字比x小,则非法 由于q次操作,第q…

一、题目

1、题目描述

2、输入输出

2.1输入

2.2输出

3、原题链接

1023D - Array Restoration


二、解题报告

1、思路分析

先考虑合法性检查:

对于数字x,其最左位置和最右位置 之间如果存在数字比x小,则非法

由于q次操作,第q次操作是最后一次操作,所以数组中应该有q,即没q非法

这个合法性检查是很简单的,我们可以线段树,树状数组,分块,set……

考虑如何构造?

对于每个0,如果处于若干个数字的区间内,那么我们应该填的数字不能比这些区间中最大那个小

同时如果数组没有q,我们优先填q

算法流程:

预处理数组最大值ma,每个数字最左下标L[],最右下标R[]

遍历数组,用一个有序集合st来维护当前遇到的区间左端点

遇到0:

如果ma < q,那么我们填q,ma = q

否则,如果st非空,填st中最大那个

否则,填1

非0:

如果i == L[a[i]],a[i] 入st

如果 i == R[i], a[i] 出st

如果a[i] < min(st),非法输出NO

2、复杂度

时间复杂度: O(NlogN)空间复杂度:O(N)

3、代码详解

 ​
#include <bits/stdc++.h>
#define sc scanf
using i64 = long long;
using i128 = __int128;
using PII = std::pair<int, int>;
constexpr int inf32 = 1e9 + 7;
constexpr i64 inf64 = 1e18 + 7;
constexpr int P = 998244353;
constexpr double eps = 1e-6;// #define DEBUGvoid solve()
{int n, q;std::cin >> n >> q;std::vector<int> a(n), L(q + 1, -1), R(q + 1, -1);int ma = -1, mi = inf32;for (int i = 0; i < n; ++ i) {std::cin >> a[i], ma = std::max(ma, a[i]), mi = std::min(mi, a[i]);if (L[a[i]] == -1) L[a[i]] = i;R[a[i]] = i;}std::set<int> st;for (int i = 0; i < n; ++ i) {if (!a[i]) {if (ma < q)a[i] = q, ma = q;else if(st.size())a[i] = *std::prev(st.end());elsea[i] = 1;}else {if (L[a[i]] == i && i < R[a[i]]) st.insert(a[i]);if (R[a[i]] == i && L[a[i]] < i) st.erase(a[i]);if (st.size() && a[i] < *std::prev(st.end())) {std::cout << "NO\n";return;}    }}if (ma < q) {std::cout << "NO\n";return;    }std::cout << "YES\n";for (int x : a)std::cout << x << ' ';}int main()
{
#ifdef DEBUGfreopen("in.txt", "r", stdin);freopen("out.txt", "w", stdout);
#endifstd::ios::sync_with_stdio(false), std::cin.tie(nullptr), std::cout.tie(nullptr);int _ = 1;// std::cin >> _;while (_--)solve();return 0;
}

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

相关文章:

  • 做黄金的人喜欢逛那些网站电子商务网站建设属性
  • 小公司网站模版佛山网站建设78788
  • 创意互动 网站建设it网站开发培训中心
  • 建设网站哪个便宜html菜鸟
  • 网站开发个人简历word下载赌钱网站怎么做的
  • 品牌展示型网站有哪些群晖wordpress php 7.0
  • 建html5网站网站里会自动换图怎么做
  • 郑州建立网站h5网站建设公司
  • 鹤壁做网站哪家好三水建设局网站
  • 个人门户网站开发用前端框架做自适应网站
  • 网站建设 保定向wordpress提交插件
  • 免费做试卷的网站wordpress 模板层级
  • 手机网站关闭窗口代码下载大连建设网官方网站
  • 网站的推广方式组合wordpress分类更改
  • 导航网站怎么做如何在自己电脑上做网站
  • 专门做茶叶会的音乐网站骗别人做网站
  • 做网站创业流程图沪深互动平台
  • 建网站外包公司小公司管理方法
  • 网站怎么建设与管理flash 可以做网站吗
  • 网站栏目框架wordpress安装主题后无法查看媒体
  • 网站收缩广告wordpress怎么进行页面修改
  • 一流的营销型网站建设wordpress 不检查更新
  • 湖州网站建设推广郑州市网络设计公司
  • 网站建设发展趋势鲜花网站建设策划方案书
  • 静态网站用什么做最快wordpress 数学插件
  • 上海网站建设 销售php网站虚拟机价格
  • wordpress文章查看量现在网站如何做优化
  • 电商官方网站西宁seo快速排名
  • 重庆主页网站建设在后台怎么做网站内链
  • 拖拽式网站建设费用一级消防工程师