题意

第一行输入一个正整数 \(T(1 \leq T \leq 1000)\),代表共有 \(T\) 组测试用例,对于每组测试用例:

第一行输入一个正整数 \(n(4 \leq n \leq 5000)\),第二行输入 \(n\) 个正整数 \(p_i(1 \leq p_i \leq n)\)。

对于 \(1 \leq i < j < k < l \leq n\),若有 \(a_i < a_k,a_j > a_l\)成立,我们称 \([a_i, a_j, a_k, a_l]\) 是合法四元组。

你需要统计出合法四元组的数目。

题解

有关三元组、四元组之类的题型,通常先思考中间的数,再思考两端的数,是比较容易的思考方式。

观察数据范围,\(4 \leq n \leq 5000\),因此时间复杂度只需要控制在 \(O(n^2)\) 及以内即可。

那不妨枚举 \(a_j\) 和 \(a_k\),此时\(a_i\) ∈ {\(a_1, a_2, ..., a_{j-1}\)},\(a_l\) ∈ {\(a_{k+1}, a_{k+2}, ..., a_{n}\)}。对于前 \(j - 1\) 个元素,使用插入排序进行维护,随后可以用二分法维护出满足 \(a_i < a_k\) 的数对数量。对于后 \(n-k\) 个元素,使用 \(cnt\) 统计满足 \(a_j > a_l\) 的数对数量,当 \(k\) 往后移动时,同步维护新的 \(cnt\)。

参考代码

void solve() {
ans = 0LL;
cin >> n;
for (int i = 0; i < n; ++ i) cin >> a[i];
for (int i = 1, j; i < n - 2; ++ i) {
int cnt = 0;
int itemp = a[i - 1];
for (j = i - 2; j >= 0; -- j) {
if (itemp < a[j]) a[j + 1] = a[j];
else break;
}
a[j + 1] = itemp;
for (j = i + 1; j < n; ++ j) cnt += a[i] > a[j];
for (j = i + 1; j < n; ++ j) {
cnt -= a[i] > a[j];
if (!cnt) break;
ans += (lower_bound(a, a + i, a[j]) - a) * cnt;
}
}
cout << ans << '\n';
}

【处理元组有关的题型的技巧】codeforces 1677 A. Tokitsukaze and Strange Inequality的更多相关文章

  1. codeforces 373 A - Efim and Strange Grade(算数模拟)

    codeforces 373 A - Efim and Strange Grade(算数模拟) 原题:Efim and Strange Grade 题意:给出一个n位的实型数,你可以选择t次在任意位进 ...

  2. CTF web题型解题技巧

    工具集 基础工具:Burpsuite,python,firefox(hackbar,foxyproxy,user-agent,swither等) 扫描工具:nmap,nessus,openvas sq ...

  3. codeforces 842 D. Vitya and Strange Lesson(01字典树+思维+贪心)

    题目链接:http://codeforces.com/contest/842/problem/D 题解:像这种求一段异或什么的都可以考虑用字典树而且mex显然可以利用贪心+01字典树,和线段树差不多就 ...

  4. Codeforces - 1191F - Tokitsukaze and Strange Rectangle - 组合数学 - 扫描线

    https://codeforces.com/contest/1191/problem/F 看了一下题解的思路,感觉除了最后一段以外没什么启发. 首先离散化x加快速度,免得搞多一个log.其实y不需要 ...

  5. Tokitsukaze and Strange Rectangle CodeForces - 1191F (树状数组,计数)

    大意: 给定$n$个平面点, 定义集合$S(l,r,a)$表示横坐标$[l,r]$纵坐标$[a,\infty]$内的所有点. 求可以得到多少种不同的集合. 从上往下枚举底层最右侧点, 树状数组统计贡献 ...

  6. Codeforces 1190D. Tokitsukaze and Strange Rectangle

    传送门 注意到矩形往上是无限的,考虑把点按 $y$ 从大到小考虑 对于枚举到高度为 $h$ 的点,设当前高度大于等于 $h$ 的点的所有点的不同的 $x$ 坐标数量为 $cnt$ 那么对于这一层高度 ...

  7. Codeforces Round #430 (Div. 2) 【A、B、C、D题】

    [感谢牛老板对D题的指点OTZ] codeforces 842 A. Kirill And The Game[暴力] 给定a的范围[l,r],b的范围[x,y],问是否存在a/b等于k.直接暴力判断即 ...

  8. 学习Python--函数进阶

    函数进阶 目标 函数参数和返回值的作用 函数的返回值 进阶 函数的参数 进阶 递归函数 01. 函数参数和返回值的作用 函数根据 有没有参数 以及 有没有返回值,可以 相互组合,一共有 4 种 组合形 ...

  9. python函数进阶(函数参数、返回值、递归函数)

    函数进阶 目标 函数参数和返回值的作用 函数的返回值 进阶 函数的参数 进阶 递归函数 01. 函数参数和返回值的作用 函数根据 有没有参数 以及 有没有返回值,可以 相互组合,一共有 4 种 组合形 ...

  10. python基础7 - 函数2

    4. 使用元组让函数返回多个值 利用 元组 同时返回温度和湿度 def measure(): """返回当前的温度""" temp = 39 ...

随机推荐

  1. Maven高级——属性

    属性 自定义属性 定义属性 <!-- 定义属性--> <properties> <spring.version>5.2.10.RELEASE</spring. ...

  2. balance_dirty_pages_ratelimited分析

    balance_dirty_pages_ratelimited分析 nr_dirtied_pause:当前task的脏页门限: dirty_exceeded:全局的脏页数超过门限或者该bdi的脏页数超 ...

  3. 云原生爱好者周刊:炫酷的 Grafana 监控面板集合

    开源项目推荐 grafana-dashboards-kubernetes 这个项目提供了一系列比较炫酷的用于监控 Kubernetes 的 Grafana 监控面板,灵感来源于 kubernetes- ...

  4. 【2024有效】WordPress忘记密码找回登录密码的最简单有效的方法

    这个找回Wordpress后台密码密的方法,前提是,可以操作数据. 最近忘记了极客侠网站登陆密码,还是按照以前的方法,进入数据库直接修改数据库, 但是现在wordpress密码的加密不是简单的MD5所 ...

  5. 挑战Java面试题复习第1天,坚持就是胜利

    面向对象和面向过程的区别面向过程: 步骤分析:将问题分解为一系列步骤.函数实现:用函数逐步实现这些步骤.调用执行:在需要时调用这些函数.高性能:适合对性能要求高的场合,如单片机和嵌入式开发.面向对象: ...

  6. 人形机器人是未来?6只手臂加AI模型,异形机器人重塑种植业。

    图源:reddit user IlustriousTea 近日,一则视频在媒体上引起了人们的讨论.国外一处苹果园里,机械嗡鸣声中,六只机械手熟练且快速地采摘成熟的苹果. 这是2018年于美国加利福尼亚 ...

  7. 题解:CF888G Xor-MST

    题解:CF888G Xor-MST 题目大意:给定 \(n\) 个点的点权, 任意两点间边权是点权的异或和.求这张完全图的 MST 的权值. 思路: Boruvka + Trie树 + 按位贪心. 关 ...

  8. 一文彻底搞定Spring Security 认证,实现登陆登出功能

    Spring Security 是一个强大且灵活的安全框架,提供了身份验证(认证)和授权(授权)功能.下面我们将详细介绍 Spring Security 的认证功能流程,并提供自定义实现登录接口的示例 ...

  9. 本地文件包含漏洞详解与CTF实战

    1. 本地文件包含简介 1.1 本地文件包含定义 本地文件包含是一种Web应用程序漏洞,攻击者通过操控文件路径参数,使得服务器端包含了非预期的文件,从而可能导致敏感信息泄露. 常见的攻击方式包括: 包 ...

  10. 精选2款C#/.NET开源且功能强大的网络通信框架

    前言 今天大姚给分享2个C#/.NET开源且功能强大的网络通信框架,希望可以帮助到有需要的同学. NetCoreServer NetCoreServer是一个.NET开源.免费(MIT License ...