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

Gym - 100624D Non-boring sequences

题目链接

首先不难发现可以分治,我们找到 \([l,r]\) 区间中只出现过一次的数 \(x\),然后可以拆成两半,即 \([l,x-1]\)\([x+1,r]\) 问题就是求这两个区间是否成立了,穿过中间 \(x\) 的显然是满足条件的。

但是还是有个问题,我们这样做在一些情况下会退化成 \(O(n^2)\) 的,即 112233456 这样子的。

中途相遇法这种东西,即我们依次按照 \(l,r,l+1,r-1,...\) 这样的顺序找,怎么证明呢,我们考虑最坏情况下找这种东西,即唯一点在最中间时,时间复杂度是 \(O(n\log_2n)\)

\(\mathscr{Code:}\)

#include <bits/stdc++.h>#define LL long long
//#define int LL
#define pb push_back
#define PII pair<int, int>
#define i64 unsigned long long
#define YY puts("Yes"), exit(0)
#define NN puts("No"), exit(0)
using namespace std;
const int Mod = 1e9 + 7;
const int Inf = 0x3f3f3f3f;
const LL InfLL = 0x3f3f3f3f3f3f3f3f;
char buf[1 << 21], *p1 = buf, *p2 = buf;
#define gc() (p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 1 << 21, stdin), p1 == p2) ? EOF : *p1++)
#define getchar() gc()
LL read() {LL s = 0; char ch = getchar(); bool fu = false;while (ch < '0' || ch > '9') ch == '-' ? fu = true : 0, ch = getchar();while (ch >= '0' && ch <= '9') s = (s << 1) + (s << 3) + (ch ^ 48), ch = getchar();return fu ? -s : s;
}const int N = 2e5 + 10;
int n, a[N], lst[N], nxt[N];bool solve(int l, int r) {if (l >= r) return 1;int ql = l, qr = r;while (ql <= qr) {if (lst[ql] < l && r < nxt[ql]) return solve(l, ql - 1) && solve(ql + 1, r);if (lst[qr] < l && r < nxt[qr]) return solve(l, qr - 1) && solve(qr + 1, r);++ql, --qr;}return 0;
}inline void Main() {map<int, int> mp;n = read();for (int i = 1; i <= n; ++i) {a[i] = read();nxt[i] = Inf;lst[i] = mp[a[i]];nxt[lst[i]] = i;mp[a[i]] = i;}if (solve(1, n)) puts("non-boring");else puts("boring");
}signed main() {
//	freopen("input.in", "r", stdin);
//	ios::sync_with_stdio(false);
//	cin.tie(0), cout.tie(0);int T = read();while (T--)Main();return 0;
}
http://www.jsqmd.com/news/593576/

相关文章:

  • MDIN380芯片高清视频处理方案:SDI转VGA与LVDS转换,专业PCB设计与源码集成
  • olonCode v0.0.20 发布 - 编程智能体(新增子代理和浏览器能力)
  • [T.2] 团队项目:选题和需求分析
  • Scratch二次开发实战:如何按需“阉割”菜单栏功能?从关闭语言切换、主题到隐藏教程按钮
  • 当openclaw安装报错时:如何用快马ai模型快速诊断与生成修复方案
  • 可伴臻选购物卡回收方式 - 京顺回收
  • AI时代程序员必看!揭秘Harness Engineerin
  • 对接亚马逊 SP-API(Amazon Selling Partner API) 第一章:AWS IAM 配置详解
  • 记录生活中的一件小事(佚名整理)
  • 无人船编队 无人车编队 MPC 模型预测控制 多智能体协同控制 一致性 MATLAB 无人车 USV
  • AI辅助开发新体验:打造智能链接内容分析与摘要生成工具
  • 从频谱仪读数到测试报告:深入理解dBμV/m、dBm这些单位在EMC辐射发射测试中的真实含义
  • OpenClaw家庭应用:Qwen3-32B管理智能家居设备控制脚本
  • 2026 最新全开源壁纸头像小程序源码:自带流量主,完美适配微信生态
  • 2025Reddit养号实战:3步打造高Karma账号矩阵
  • 解锁Intel GPU的CUDA能力:从零开始的跨硬件计算实践
  • 【FastAPI】 + SQLAlchemy 异步 ORM 实现完整 CRUD 操作
  • 华泰证券2027届校招启动|提前批+国际管培+金融科技,三个专场一次说清
  • 新手友好:用快马生成的代码学习谷歌注册表单开发基础
  • 夸克网盘自动化助手:彻底告别手动转存的智能管理方案
  • DownKyi终极指南:如何快速下载B站8K高清视频的完整教程
  • 全开源同城论坛小程序:打造本地生活服务新入口
  • 3步解锁群晖Photos人脸识别:让DS918+等设备重获AI能力
  • RK3399 DRM显示框架实战:从零开始搭建多图层视频播放器
  • 2026年4月中式高定服装加盟品牌推荐,头部中式高定服装加盟怎么选择拿货精选综合实力推荐企业 - 品牌推荐师
  • 接地引出装置实力厂家精选,2026年这些品牌有优势,铜覆钢接地极/铜排放热焊接,接地引出装置企业推荐分析 - 品牌推荐师
  • 从SquareLine Studio到Windows桌面:LVGL UI文件在模拟器中的一站式移植指南
  • Claude Code 进阶攻略:搞定内置 /loop,用大白话玩转 Cron,一行搞定自动化任务
  • APM基础概念普及:应用性能管理的全面解析
  • Kevin喜欢零(困难版本)【牛客tracker 每日一题】