题解 CF1550C. Manhattan Subarrays (思维)
来源:Educational Codeforces Round 111 (Rated for Div. 2)
不难但很好的思维题
设
为 两点之间的曼哈顿距离 给定三个点,如果
则三个点是 坏三元组
。在给定的序列中每个点都是
请判断序列中有多少个好子序列,长度为 和 也为好序列
在
正如
所以我们可以直接遍历判断情况
代码
int main() {
cin.tie(nullptr)->sync_with_stdio(false);
int _; for (cin >> _; _--;) {
int n;
cin >> n;
vectora(n);
auto check = [&](int L, int R) {
for (int i = L; i <= R; ++i)for (int j = i + 1; j <= R; ++j)
for (int k = j + 1; k <= R; ++k) {
if (a[i] <= a[j] and a[j] <= a[k]) return 0;
if (a[i] >= a[j] and a[j] >= a[k]) return 0;
}
return 1;
};
int ans = 0;
for (int &x : a) cin >> x;
for (int i = 0; i < n; ++i)
for (int j = i; j < n; ++j)
if (check(i, j)) ans += 1;
else break;
cout << ans << "\n";
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· 分享4款.NET开源、免费、实用的商城系统
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 全程不用写代码,我用AI程序员写了一个飞机大战
2020-07-30 (转)Github+jsDelivr+PicGo 打造稳定快速、高效免费图床
2020-07-30 解决Github中使用Octotree时,出现 Error: API limit exceeded 报错 或者 Error: Connection error报错的问题(详细操作)
2020-07-30 P3372 【模板】线段树 1
2020-07-30 【题解】Qin Shi Huang's National Road System HDU - 4081 ⭐⭐⭐⭐ 【次小生成树】