A. Tokitsukaze and Strange Inequality(前缀和+桶)

news2024/11/15 17:52:27

Problem - 1677A - Codeforces

 

时津风有一个长度为n的排列组合p。回顾一下,长度为n的排列组合p是由n个不同的整数组成的序列p1,p2,...,pn,每个整数从1到n(1≤pi≤n)。

她想知道在这个排列组合中,有多少个不同的指数图组[a,b,c,d](1≤a<b<c<d≤n)满足以下两个不等式。

pa<pc和pb>pd。
请注意,如果a1≠a2或b1≠b2或c1≠c2或d1≠d2,两个图元[a1,b1,c1,d1]被认为是不同的。

输入
第一行包含一个整数t(1≤t≤1000)--测试案例的数量。每个测试用例由两行组成。

第一行包含一个整数n(4≤n≤5000)--包络的长度p。

第二行包含n个整数p1,p2,...,pn(1≤pi≤n)--包络p。

保证所有测试案例的n之和不超过5000。

输出
对于每个测试案例,打印一个整数--不同的[a,b,c,d]图组的数量。

例子
输入复制
3
6
5 3 6 1 4 2
4
1 2 3 4
10
5 1 6 2 8 3 4 10 9 7
输出拷贝
3
0
28
注意
在第一个测试案例中,有3个不同的[a,b,c,d]图组。

p1=5, p2=3, p3=6, p4=1,其中p1<p3,p2>p4满足不等式,所以[a,b,c,d]图组中的一个是[1,2,3,4]。

同样地,另外两个图元是[1,2,3,6],[2,3,5,6]。

题解:
我们可以枚举b,过程中,利用桶排的思想把对b前面的数标记,利用前缀和,找到,b后面的数c有多少个是大于a的res,然后在内部循环,c后面的数,找到大于当前b的加上,然后更新res,因为b后面的数可以成为d,也可以为c

(说的有点乱,具体代码有体现)

#include<iostream>
#include<algorithm>
#include<cstring>
#include<string>
#include<map>
#include<vector>
#include<queue>
using namespace std;
#define int long long
//1 1 3 3 3
int n,ans;
int a[200050];
int tong[5005];
int d[5005];
void solve()
{
	int n;
	cin >> n;
	for(int i = 1;i <= n;i++)
	cin >> a[i],tong[i] = 0;
	int ans = 0,res;
	for(int i = 2;i < n-1;i++)(枚举b的位置)
	{
		tong[a[i-1]]++;(对a的位置进行桶排标记)
		for(int j = 1;j <= n;j++)
		{
		    d[j] = d[j-1] + tong[j];(统计每个位置大于前面的有几个数)
		}
		res = d[a[i+1]];//得到c大于a的个数
		for(int j = i+2;j <= n; j++)//枚举d
		{
			if(a[i] > a[j])//如果b > d
			{
				ans += res;
			}
			res += d[a[j]];//更新res如果a[j]前面有数,说明这个数也可以a[j]也可以为c
		}
	}
	cout<<ans<<"\n";
}
signed main()
{
	int t = 1;
	cin >> t;
	while(t--)
	{
		solve();
	}
}
//2 5
//3
//9 7 


//2  3 4 3
//1 2 3 4 5
//      3

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/31854.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

玩转MySQL:你知道什么是表分区吗

引言 分库分表相信大家都听说过&#xff0c;但(partitioning)表分区这个概念却鲜为人知&#xff0c;MySQL在5.1版本中开始支持了表分区技术&#xff0c;同时在MySQL5.5中进行了优化&#xff0c;自从MySQL支持的绝大部分引擎都开启了表分区功能。 但到底什么是表分区技术呢&…

基于golang+uniapp+python 实现的一套A股提醒系统

shareshttps://github.com/xxjwxc/shares 功能 A 股量化交易系统 后台开发语言 Go/Python gmsechttps://github.com/gmsec/gmsec gormt 嵌入&#xff0c;自动数据库代码生成 gorm 自动构建(gormt)https://github.com/xxjwxc/gormt 分时任务,盯盘助手,研报股评,每日监控,微信…

Bioinformatics2022 | AdvProp+:基于集成网络的分子性质预测与药物研发

论文标题&#xff1a;Advanced graph and sequence neural networks for molecular property prediction and drug discovery 代码&#xff1a;https://github.com/divelab/MoleculeX 一、Materials and methods 1、Notations and problem definitions 旨在通过基于图和基于…

Vue基础5

Vue基础5绑定样式绑定class样式绑定style样式条件渲染列表渲染v-for指令key的原理index作为key的时候id作为key的时候总结绑定样式 class样式 写法&#xff1a;class"xxx“ xxx可以是字符串、对象、数组 字符串的写法适用于&#xff1a;类名不确定&#xff0c;要动态获取…

如何做一个小程序商城,需要多少钱

如何做一个小程序商城&#xff0c;需要多少钱&#xff1f; 操作像玩消消乐那么简单&#xff01; 费用是一年1998元至3498元。免300元认证费。买两年用四年。 日均花费不到2元就能搭建一个小程序商城。 下面分享的是自建小程序商城的教程: 1、进入第三方小程序商城制作平台…

Mybatis-Plus中getOne方法获取最新一条数据

Mybatis-Plus中getOne方法获取最新一条数据一、代码1、Controller2、Service3、效果一、代码 1、Controller GetMapping("/queryNewProduct")public ProductDTO queryNewProduct(RequestParam("type") String type) {return opProductService.queryNewPro…

Python基础(二):不同系统安装Python3

​​​​​​​ 文章目录 不同系统安装Python3 一、Anaconda安装与使用 1、下载 2、安装 3、配置 4、使用 5、常用命令 二、原生Python安装 三、在Linux环境Python安装 不同系统安装Python3 14天学习训练营导师课程&#xff1a;杨鑫《Python 自学编程基础》杨鑫《 P…

HTML学生个人网站作业设计——中华美食(HTML+CSS) 美食静态网页制作 WEB前端美食网站设计与实现

&#x1f380; 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业…

JVM 中类加载的链接与初始化

类加载系统&#xff0c;主要有以下部分 加载链接 验证准备解析初始化 它们每部分都做些什么事情呢&#xff1f; 加载 (2条消息) JVM 双亲委派模型_兜兜转转m的博客-CSDN博客 链接 链接-验证 一般验证部分&#xff0c;IDEA已经帮我们规范了。 验证是连接阶段的第一步&…

第二章 数据库设计

数据库技术是信息资源管理最有效的手段。数据库设计是指对于一个给定的应用环境&#xff0c;构造最优的数据库模式&#xff0c;建立数据库极其应用系统&#xff0c;有效存储数据&#xff0c;满足用户信息要求和处理要求。 数据库设计的步骤 ⒈需求分析阶段 收集和分析用户需…

怎么搭建属于自己的网站?

搭建属于自己的网站已经不是什么新鲜事了&#xff0c;有些人甚至搭建一个网站用来做自己的简历。搭建网站对一些懂代码的人来说也是比较简单的&#xff0c;就算不精通也能下载源代码模板。那如果不太懂代码的小伙伴&#xff0c;又怎么搭建属于自己的网站呢&#xff1f; 一、善…

SpringBoot 代码混淆真香,再也不用担心反编译代码泄露...

编译 简单就是把代码跑一哈&#xff0c;然后我们的代码 .java文件 就被编译成了 .class 文件 反编译 就是针对编译生成的 jar/war 包 里面的 .class 文件 逆向还原回来&#xff0c;可以看到你的代码写的啥。 比较常用的反编译工具 JD-GUI &#xff0c;直接把编译好的jar丢进…

MySQL 进阶 图文详解InnoDB储存引擎

前言 SQL 语句的最终执行者是存储引擎。存储引擎在经解析器、优化器处理后被执行器调用其接口执行优化后的执行计划。MySQL 存储引擎包括 InnoDB、Myisam、Memory、Archive、CSV 存储引擎等&#xff0c;其中最常用也是MySQL 默认的存储引擎是 InnoDB。 写入缓冲池&#xff08;…

cyclictest生成结果统计图

在用cyclictest测试实时性的时候通过输出的结果能清晰的看到最大值、最小值平均值&#xff0c;但具体的分布情况无法直接得到。 本文记录根据网上的博客实际测试结果。 1、先在开发板上运行测试程序 ./cyclictest -l 1000000 -m -Sp99 --policyfifo -h 25000 -q >output 得…

华为机试 - 高矮个子排队

目录 题目描述 输入描述 输出描述 用例 题目解析 算法源码 题目描述 现在有一队小朋友&#xff0c;他们高矮不同&#xff0c;我们以正整数数组表示这一队小朋友的身高&#xff0c;如数组{5,3,1,2,3}。 我们现在希望小朋友排队&#xff0c;以“高”“矮”“高”“矮”顺…

专利变更需要哪些材料

一、专利变更需要哪些材料 专利权人变更专利的&#xff0c;需要提供著录项目变更请求书、著录项目变更证明材料、专科权人身份证明等材料。 《专利法实施细则》 第八十九条 国务院专利行政部门设置专利登记簿&#xff0c;登记下列与专利申请和专利权有关的事项&#xff1a; …

聚观早报|苹果高管称ipad在走下坡路;罗永浩新公司完成融资

今日要闻&#xff1a;苹果高管称ipad在走下坡路&#xff1b;罗永浩新公司完成融资&#xff1b;谷歌发布最新可持续发展成果&#xff1b;比亚迪新能源车涨价&#xff1b;惠普宣布裁员6千人 前苹果高管称ipad在走下坡路 据报道&#xff0c;前苹果公司高管让路易斯加塞近日表示&am…

无符号、有符号数运算判溢出

目录 无符号数的运算&#xff08;溢出看CF&#xff09; 有符号数运算&#xff08;溢出看OF&#xff09;&#xff08;都是补码进行运算&#xff0c;因为补码的符号位可以直接参与运算一套电路就ok&#xff09; 例题 第一题 第二题 无符号数的运算&#xff08;溢出看CF&#…

会议信息管理系统SSM记录(六)

目录&#xff1a; &#xff08;1&#xff09;会议预定1 &#xff08;2&#xff09;会议预定2 &#xff08;3&#xff09;会议预约3 &#xff08;4&#xff09;会议预定4 &#xff08;1&#xff09;会议预定1 创建MeetingController&#xff1a; //跳转预定会议页面Request…

嵌入式面试题

1、写一个程序判断电脑是大端字序还是小端字序&#xff08;加量不加价&#xff09; #include <stdio.h> #include <arpa/inet.h> typedef unsigned char byte; typedef unsigned int word; int main(int argc, char *argv[]) {word val32 0x11223344;byte val8 …