对于map的新应用

题源codeforces1974 problemC

题目大意

定义当两个三元组A和B中,满足三元组中有且仅有两个元素相等,比如
a 1 = b 1 , a 2 = b 2 , a 3 ! = b 3 a_1=b_1,a_2=b_2,a_3!=b_3 a1=b1,a2=b2,a3!=b3
这只是一种情况,三种情况之一

解题思路

暴力。
挨个遍历这个数组中的所有三元组,把这些三元组中前两个元素/后两个元素/两边两个元素,用

map<pair<int,int>,int>

记录下来,然后如果重复出现,就加上。
去重。
挨个遍历这个数组中的所有三元组,把这些三元组全部用

map<tuple<int,int,int> ,int>

然后记录下来所有重复出现的三元组,重复次数也记录,便于去重。
详情请看代码

代码

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
#define For for (int i = 1; i <= n; i++)
#define rFor for (int i = n; i > 0; i--)
#define rep(i, sta, end) for (int i = sta; i <= end; i++)
#define rrep(i, end, sta) for (int i = end; i >= sta; i--)
#define ALL(x) for (auto item : x)inline void solve() {int n;cin>>n;vector<int> arr(n+10);For cin>>arr[i];ll ans=0;map<pair<int,int> ,int> count_of_pair;//Iterate over all triples of the entire arrayrep(i,1,n-2)ans+=count_of_pair[{arr[i],arr[i+1]}]++;//cout<<ans<<endl;count_of_pair.clear();rep(i,1,n-2)ans+=count_of_pair[{arr[i+1],arr[i+2]}]++;//cout<<ans<<endl;count_of_pair.clear();rep(i,1,n-2)ans+=count_of_pair[{arr[i],arr[i+2]}]++;//cout<<ans<<endl;count_of_pair.clear();map<tuple<int,int,int>,int> count_of_triple;rep(i,1,n-2){ans-=3*count_of_triple[{arr[i],arr[i+1],arr[i+2]}]++;}//cout<<ans<<endl;cout<<max(ans,0LL)<<endl;//cout<<endl;
}int main() {ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);int num = 1;cin >> num;while (num--) {//cout << "Main function execute properly before solve function " << endl;solve();//	cout << "Main function execute properly after solve function" << endl;}return 0;
}

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

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

相关文章

java抽象类和接口知识总结

一.抽象类 1.啥是抽象类 用专业语言描述就是&#xff1a;如果一个类中没有包含足够的信息来描绘一个具体的对象&#xff0c;这样的类就是抽象类 当然这话说的也很抽象&#xff0c;所以我们来用人话来解释一下抽象类 抛开编程语言这些&#xff0c;就以现实举例&#xff0c;我…

每日练习之排序——链表的合并;完全背包—— 兑换零钱

链表的合并 题目描述 运行代码 #include<iostream> #include<algorithm> using namespace std; int main() { int a[31];for(int i 1;i < 30;i)cin>>a[i];sort(a 1,a 1 30);for(int i 1;i < 30;i)cout<<a[i]<<" ";cout&…

Mysql之Innodb存储引擎

1.Innodb数据存储 innodb如今能够做到mysql的默认数据存储引擎&#xff0c;肯定有着其好处的&#xff0c;那么innodb有什么好处呢? 1. 当意外断电或者重启&#xff0c; InnoDB 能够做到奔溃恢复&#xff0c;撤销没有提交的数据 2.InnoDB 存储引擎维护自己的缓冲池&#xff0c…

UDS(ISO 14229)学习笔记

文章目录 名词缩写Vector视频笔记$10$27Fault Memory物理寻址和功能寻址UDS服务分类0x19服务0x14DTC汽车控制器(ECU)中DTC的状态位物理寻址和功能寻址单帧 多帧 首帧 连续帧名词缩写 DTC Diagnostic Trouble Code FTB Fault Type Byte SID Service Identifier SF Subfunctio…

DML(Data Manipulation Language)数据操作语言

一、增加 insert into -- 写全所有列名 insert into 表名(列名1,列名2,...列名n) values(值1,值2,...值n);-- 不写列名&#xff08;所有列全部添加&#xff09; insert into 表名 values(值1,值2,...值n);-- 插入部分数据 insert into 表名(列名1,列名2) values(值1,值2); 举…

医院挂号就诊系统的设计与实现

前端使用Vue.js 后端使用SpiringBoot MyBatis 数据使用MySQL 需要项目和论文加企鹅&#xff1a;2583550535 医院挂号就诊系统的设计与实现_哔哩哔哩_bilibili 随着社会的发展&#xff0c;医疗资源分布不均&#xff0c;患者就诊难、排队时间长等问题日益突出&#xff0c;传统的…

软考备考三

操作系统 操作系统概述 功能&#xff1a;组织和管理软件&#xff0c;硬件资源以及计算机系统中的工作流程&#xff0c;控制程序的执行&#xff0c;向用户提供接口。 分类&#xff1a; 1.批处理操作系统 单道批 多道批&#xff08;宏观上并行&#xff0c;微观上串行&#xff09…

Hadoop3:HDFS的Fsimage和Edits文件介绍

一、概念 Fsimage文件&#xff1a;HDFS文件系统元数据的一个永久性的检查点&#xff0c;其中包含HDFS文件系统的所有目 录和文件inode的序列化信息。 Edits文件&#xff1a;存放HDFS文件系统的所有更新操作的路径&#xff0c;文件系统客户端执行的所有写操作首先 会被记录到Ed…

K8s 身份认证和权限

文章目录 K8s 身份认证和权限认证Service AccountsService Account Admission ControllerToken ControllerService Account Controller 授权(RBAC)RoleClusterRoleRoleBindingClusterRoleBinding K8s 身份认证和权限 Kubernetes 中提供了良好的多租户认证管理机制&#xff0c;…

二叉树的链式结构

1.二叉树的遍历 2.二叉树链式结构的实现 3.解决单值二叉树题 1.二叉树的遍历 1.1前序&#xff0c;中序以及后序遍历 二叉树的遍历是按照某种特定的规则&#xff0c;依次对二叉树的结点进行相应的操作&#xff0c;并且每个结点只操作一次。 二叉树的遍历有这些规则&#xff…

主流电商平台商品实时数据采集API接口||抖音电商数据分析实例|可视化

— 1 — 抖音电商数据【抖音电商API数据采集】分析场景 1. 这里&#xff0c;我们选择“伊利”这个品牌作为案例进行分析&#xff0c;在短短的4个月里&#xff0c;从最初每月营收17.07万&#xff0c;到6月份达到了2485.54 万&#xff0c;伊利的牛奶&#xff0c;有点牛&#xff…

Spring 对 Junit4,Junit5 的支持上的运用

1. Spring 对 Junit4,Junit5 的支持上的运用 文章目录 1. Spring 对 Junit4,Junit5 的支持上的运用每博一文案2. Spring对Junit4 的支持3. Spring对Junit5的支持4. 总结&#xff1a;5. 最后&#xff1a; 每博一文案 关于理想主义&#xff0c;在知乎上看到一句话&#xff1a;“…

在Windows下访问WSL(Windows Subsystem for Linux)文件夹

在Windows下访问WSL&#xff08;Windows Subsystem for Linux&#xff09;文件夹&#xff0c;可以按照以下步骤操作&#xff1a; 通过Windows文件资源管理器访问&#xff1a; 打开文件资源管理器。在地址栏中输入\\wsl$&#xff0c;然后按回车键。这将打开一个显示WSL可用发行版…

kafka配置消费者重要参数

文章目录 fetch.min.bytesfetch.max.wait.msfetch.max.bytesmax.poll.recordsmax.partition.fetch.bytessession.timeout.ms和heartbeat.interval.msmax.poll.interval.msrequest.timeout.msauto.offset.resetenable.auto.commitpartition.assignment.strategy区间(range)轮询(…

Xline社区会议Call Up|在 CURP 算法中实现联合共识的安全性

为了更全面地向大家介绍Xline的进展&#xff0c;同时促进Xline社区的发展&#xff0c;我们将于2024年5月31日北京时间11:00 p.m.召开Xline社区会议。 欢迎您届时登陆zoom观看直播&#xff0c;或点击“阅读原文”链接加入会议&#xff1a; 会议号: 832 1086 6737 密码: 41125…

通过cmd命令行使用用3dmax自带的vray渲染

有时调试需要使用vray渲染vrscene文件看效果&#xff0c;只装有3dmax下可以使用自带vray渲染&#xff0c;在3dmax的渲染日志里面看自带引擎路径 使用命令行进入到此目录 执行命令指定vr文件即可看到效果&#xff0c;如&#xff1a;vray.exe -sceneFile“C:\test15\202405241…

pip安装报错解决之后,手动安装太麻烦,怎么办

在使用pip install package_name安装公共库的时候,经常会报错: Microsoft Windows [版本 6.1.7601] 版权所有 (c) 2009 Microsoft Corporation。保留所有权利。C:\Users\Administrator>pip install hatch WARNING: Ignoring invalid distribution -ip (d:\soft\python\py…

记一次成功的性能调优

环境&#xff1a;mysql8&#xff0c;表A大小10G&#xff0c;dbeaver24.0.5 现象&#xff1a;查询页面加载数据慢 操作&#xff1a; 第一步&#xff1a;新建sql编辑器&#xff0c;把sql贴到编辑器&#xff0c;带参数&#xff1b; 第二步&#xff1a;在sql前加explain空一个并…

Cesium与Three相机同步(2)

之前实现了将Three相机同步到Cesium相机Cesium与Three相机同步(1)-CSDN博客 现在是将Cesium相机同步到Three相机,从而实现了相机双向同步。 <!DOCTYPE html> <html lang="en"><head><title>three.js webgl - orbit controls</title&g…

【教学类-58-03】黑白三角拼图03(4*4宫格)总数算不出+随机抽取10张

背景需求&#xff1a; 【教学类-58-01】黑白三角拼图01&#xff08;2*2宫格&#xff09;256种-CSDN博客文章浏览阅读318次&#xff0c;点赞10次&#xff0c;收藏12次。【教学类-58-01】黑白三角拼图01&#xff08;2*2宫格&#xff09;256种https://blog.csdn.net/reasonsummer/…