C. Doremy‘s City Construction(思维)

news2024/11/29 6:31:13

Problem - C - Codeforces

Doremy的新城市正在建设中! 这个城市可以被看作是一个有n个顶点的简单无向图。第i个顶点的高度为ai。现在,多雷米正在决定哪些顶点对应该用边连接。

由于经济原因,图中不应该有自循环或多条边。

由于安全原因,不应该有成对的不同顶点u、v和w,使au≤av≤aw和边(u,v)和(v,w)存在。

在这些约束条件下,Doremy想知道图中最大可能的边数。你能帮助她吗?

请注意,所构建的图允许是不连接的。

输入
输入由多个测试案例组成。第一行包含一个整数t(1≤t≤104)--测试案例的数量。测试用例的描述如下。

每个测试用例的第一行包含一个整数n(2≤n≤2⋅105)--顶点的数量。

每个测试案例的第二行包含n个整数a1,a2,...,an(1≤ai≤106)--每个顶点的高度。

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

输出
对于每个测试案例,输出图中最大可能的边数。

例子
inputCopy
4
4
2 2 3 1
6
5 2 3 1 5 2
12
7 2 4 9 1 4 6 3 7 4 2 3
4
1000000 1000000 1000000 1000000
输出拷贝
3
9
35
2

 题解:
题中说不允许出现三条边相连类似,wi <= wj <= wk的形式

那我们就构造不是这样的形式即可

记录每个f[x]的值

遍历f[x],找到小于x的值有l多少,与大于x的值r有多少

理论上每个大于x的值,两边是随便放x的值,与小于x的值的,一个大于x的值,可以构建l + f[x]条边,

那么r个大于的值,就可以构建(l + f[x])*r条边

还有一种情况,所有点值相等,n/2

#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
void solve()
{
	map<int,int> f;
	int n;
	cin >> n;
	for(int i = 1;i <= n;i++)
	{
		int x;
		cin >> x;
		f[x] ++;
	}
	int s = 0;
	int ans = 0;
	for(auto [k,v]:f)
	{
		s += v;
		ans = max(s*(n-s),ans);
	}
	if(ans == 0)
	{
		ans = n/2;
	}
	cout<<ans<<"\n";
}
signed main()
{
//	ios::sync_with_stdio(false);
//	cin.tie(0);
//	cout.tie(0);
	int t = 1;
	cin >> t;
	while(t--)
	{
		solve();
	}
}
//5 7
//2
//3 1
//4

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

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

相关文章

mybatis基础01

一、安装mybatis 要使用 MyBatis&#xff0c; 只需将 mybatis-x.x.x.jar 文件置于类路径&#xff08;classpath&#xff09;中即可。 如果使用 Maven 来构建项目&#xff0c;则需将下面的依赖代码置于 pom.xml 文件中&#xff1a; <dependency><groupId>org.mybat…

贺利坚汇编语言课程笔记 绪论

贺利坚汇编语言课程笔记 绪论 又是女娲补天式地从零开始两周零基础冲击六十分… 文章目录贺利坚汇编语言课程笔记 绪论一.Why should we learn Assembly language&#xff1f;二.从机器语言到汇编语言三.计算机组成指令和数据的表示计算机中的存储单元计算机中的总线x86CPU性能…

Java日期时间的前世今生

&#x1f649; 作者简介&#xff1a; 全栈领域新星创作者 &#xff1b;天天被业务折腾得死去活来的同时依然保有对各项技术热忱的追求&#xff0c;把分享变成一种习惯&#xff0c;再小的帆也能远航。 &#x1f3e1; 个人主页&#xff1a;xiezhr的个人主页 前言 日常开发中&…

gitpod.io,云端开发调试工具。

gitpod&#xff0c;一款在线开发调试工具&#xff0c;使用它你可以在网页上直接开发软件项目了。 比如你的项目仓库在github上&#xff0c;你可以直接在网址的前面添加gitpod.io/#&#xff0c;然后回车就能在网页上使用vscode打开这个项目了。 打开的效果&#xff1a; 可以安装…

ZZULIOJ 2066: 带分数

ZZULIOJ 2066: 带分数 题意&#xff1a; 给定一个数NNN&#xff0c;问有多少组a,b,ca,b,ca,b,c满足abcNa\dfrac bcNacb​N&#xff0c;且a,b,ca,b,ca,b,c三个数不重不漏地涵盖1−91-91−9这999个数字&#xff0c;输出总组数 解题思路&#xff1a; 暴力枚举出999个数的全排列…

sql数据库入门(1)

前言 &#x1f388;个人主页:&#x1f388; :✨✨✨初阶牛✨✨✨ &#x1f43b;推荐专栏: &#x1f354;&#x1f35f;&#x1f32f; c语言初阶 &#x1f511;个人信条: &#x1f335;知行合一 &#x1f349;本篇简介:>: 本篇记录一下牛牛在学校学习的sql serve数据库知识,内…

学了PS了还用学习AI吗,有什么区别

AdobeIllustrator和AdobePhotoshop它是目前市场上设计师使用最广泛的两种软件。很多刚接触的同学会发现&#xff0c;两者都可以达到一些效果&#xff0c;导致一种错觉&#xff0c;认为任何人都可以使用&#xff0c;所以他们可以随意使用。 虽然在PS和Ai它确实可以用来做类似的…

顶刊示例-经济研究数据-全国、省、市-城市人均收入、农村人均收入面板数据

&#xff08;1&#xff09;全国城乡居民人均收入 1、数据来源&#xff1a;中国统计年鉴 2、时间跨度&#xff1a;1978-2020 3、区域范围&#xff1a;国家 4、指标说明&#xff1a; 包含如下指标&#xff1a; 全国居民人均可支配收入 城镇居民人均可支配收入 农村居民人均…

深入浅出解析——MYSQL|触发器

&#x1f482;作者简介&#xff1a; THUNDER王&#xff0c;一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计学专业大二本科在读&#xff0c;同时任汉硕云&#xff08;广东&#xff09;科技有限公司ABAP开发顾问。在学习工作中&#xff0c;我通常使用偏后…

AtCoder Beginner Contest 279 F BOX 并查集 (大意失荆州

前言 赛时一直RE&#xff0c;思路很清晰&#xff0c;不知道RE哪里。。qwq 赛后开断点发现&#xff0c;map的大小不变&#xff0c; 最后发现是一个if条件写错了&#xff0c;寄。 不知道为什么会想起 银河英雄传说 题意&#xff1a; 初始n个盒子&#xff0c;盒子iii放着编号为i…

2023年天津财经大学珠江学院专升本退役士兵免试职业技能考查大纲

天津财经大学珠江学院2023年高职升本科职业技能综合考查考试大纲 &#xff08;仅适用于符合条件的退役士兵考生&#xff09;《管理学原理》 一、本大纲系天津财经大学珠江学院2023年高职升本科《管理学原理》职业技能综合考查考试大纲&#xff0c;仅适用于符合条件的退役士兵考…

面试官:synchronized与Lock有什么区别?

作为一名程序员&#xff0c;在求职面试时&#xff0c;不知道你在求职面试时常会遇到关于线程的问题。张工是一名java程序员&#xff0c;3年多工作经验&#xff0c;有次到一家互联网公司面试软件开发工程师岗位&#xff0c;面试官就问了他这样一个问题。synchronized与Lock有什么…

Android APP深度优化—内存映射机制(mmap)

mmap原理 open一个文件&#xff0c;然后调用mmap系统调用&#xff0c;将文件的内容的全部或一部分直接映射到进程虚拟空间中文件存储映射部分&#xff1b;完成映射关系后&#xff0c;mmap返回值是一个指针&#xff0c;进程可以通过采用指针方式读写操作这一段内存&#xff1b;…

vue3 antd项目实战——使用filter实现简单的table表格搜索功能

零基础filter实现最简单的table表格知识调用核心干货下期预告关键字模糊查找&#xff08;纯前端&#xff09;关键字模糊查找&#xff08;前后交互&#xff09;知识调用 功能实现可能要用到的知识&#xff1a;vue3ant design vuets实战【ant-design-vue组件库引入】vue3项目实战…

MyBatis-Plus删除操作知识点总结

系列文章目录 Mybatis-Plus知识点[MyBatisMyBatis-Plus的基础运用]_心态还需努力呀的博客-CSDN博客 Mybatis-PlusSpringBoot结合运用_心态还需努力呀的博客-CSDN博客MyBaits-Plus中TableField和TableId用法_心态还需努力呀的博客-CSDN博客MyBatis-Plus中的更新操作&#xf…

移动无线点餐客户端的研究与实现(Java+Android)

目录 1 绪 论 2 1.1 研究的背景及意义 2 1.2 本文主要内容 2 2.1 系统架构 3 2.2 关键技术 3 2.2.1 JDBC 3 2.2.2 Jquery 4 2.2.3 Ajax 4 2.3 开发环境及平台 5 2.3.1 Eclipse 5 2.3.2 MyEclipse 6 2.3.3 Tomcat服务器 6 2.3.4 应用平台Android 7 3 订餐系统分析与设计 9 3.1需…

机器学习:图文详解密度聚类DBSCAN算法(附Python实现)

目录0 写在前面1 密度聚类2 DBSCAN算法3 Python实现3.1 算法复现3.2 可视化实验0 写在前面 机器学习强基计划聚焦深度和广度&#xff0c;加深对机器学习模型的理解与应用。“深”在详细推导算法模型背后的数学原理&#xff1b;“广”在分析多个机器学习模型&#xff1a;决策树…

C#线程间操作无效:从不是创建控件“textbox1”的线程访问它

在C#的多线程访问中&#xff0c;在线程间的相互访问时因为线程安全问题有访问限制&#xff0c;在创建一般线程时&#xff0c;对于界面元素访问时这样的问题比较常见。 比如&#xff0c;创建一个form1&#xff0c;上面放置一个textbox控件&#xff0c;创建一个线程去访问textbox…

3_SpringMVC_执行流程

1DispatcherServlet&#xff1a;前端控制器 用户请求到达前端控制器&#xff0c;它就相当于 mvc 模式中的 c&#xff0c;dispatcherServlet 是整个流程控制的中心&#xff0c;由 它调用其它组件处理用户的请求&#xff0c;dispatcherServlet 的存在降低了组件之间的耦合性。 2…

【学习笔记43】JavaScript的事件

JavaScript的事件一、JS的事件1、事件的三要素2、DOM 0级事件绑定3、DOM 2级事件绑定(事件监听)二、浏览器事件三、鼠标事件1. 左键单击&#xff1a;click2. 双击事件&#xff1a;dblclick3.右键事件&#xff1a;contextmenu4. 鼠标按下事件&#xff1a;mousedown5. 鼠标抬起事…