[ABC262C] Min Max Pair
Problem Statement
You are given a sequence $a = (a_1, \dots, a_N)$ of length $N$ consisting of integers between $1$ and $N$.
Find the number of pairs of integers $i, j$ that satisfy all of the following conditions:
- $1 \leq i \lt j \leq N$
- $\min(a_i, a_j) = i$
- $\max(a_i, a_j) = j$
Constraints
- $2 \leq N \leq 5 \times 10^5$
- $1 \leq a_i \leq N \, (1 \leq i \leq N)$
- All values in input are integers.
Input
Input is given from Standard Input in the following format:
$N$
$a_1$ $\ldots$ $a_N$
Output
Print the answer.
Sample Input 1
4
1 3 2 4
Sample Output 1
2
$(i, j) = (1, 4), (2, 3)$ satisfy the conditions.
Sample Input 2
10
5 8 2 2 1 6 7 2 9 10
其实对于合法的数对可以分成两种:$$a_i=i,a_j=j,i<j$$ $$a_i=j,a_j=i,i>j$$
对于第一种,统计有多少个 \(a_i=i\) ,设有 \(cnt\) 个,则答案为 \(\frac{cnt*(cnt-1)}{2}\)
对于第二种,如果\(a_{a_i}=i\),答案增加1.
#include<cstdio>
const int N=5e5+5;
int n,a[N],cnt;
long long ans;
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",a+i);
if(a[i]==i)
{
ans+=cnt;
cnt++;
}
else if(a[a[i]]==i)
++ans;
}
printf("%lld",ans);
}
[ABC262C] Min Max Pair的更多相关文章
- LightOJ - 1162 Min Max Roads
LightOJ - 1162 Min Max Roads 题解:在线倍增LCA和模拟ST表 让我们求从\(u->v\)最短路径上的边权最大值和边权最小值,那么我们可以利用倍增思想,类似其\(fa ...
- 在一定[min,max]区间,生成n个不重复的随机数的封装函数
引:生成一个[min,max]区间的一个随机数,随机数生成相关问题参考→链接 var ran=parseInt(Math.random()*(max-min+1)+min); //生成一个[min,m ...
- LINQ to SQL Count/Sum/Min/Max/Avg Join
public class Linq { MXSICEDataContext Db = new MXSICEDataContext(); // LINQ to SQL // Count/Sum/Min/ ...
- 2.10 用最少次数寻找数组中的最大值和最小值[find min max of array]
[本文链接] http://www.cnblogs.com/hellogiser/p/find-min-max-of-array.html [题目] 对于一个由N个整数组成的数组,需要比较多少次才能把 ...
- LINQ Count/Sum/Min/Max/Avg
参考:http://www.cnblogs.com/peida/archive/2008/08/11/1263384.html Count/Sum/Min/Max/Avg用于统计数据,比如统计一些数据 ...
- 【转载】:【C++跨平台系列】解决STL的max()与numeric_limits::max()和VC6 min/max 宏冲突问题
http://www.cnblogs.com/cvbnm/articles/1947743.html 多年以前,Microsoft 幹了一件比 #define N 3 還要蠢的蠢事,那就是在 < ...
- LINQ to SQL 语句(3) 之 Count/Sum/Min/Max/Avg
LINQ to SQL 语句(3) 之 Count/Sum/Min/Max/Avg [1] Count/Sum 讲解 [2] Min 讲解 [3] Max 讲解 [4] Average 和 Agg ...
- [转]LINQ语句之Select/Distinct和Count/Sum/Min/Max/Avg
在讲述了LINQ,顺便说了一下Where操作,这篇开始我们继续说LINQ语句,目的让大家从语句的角度了解LINQ,LINQ包括LINQ to Objects.LINQ to DataSets.LINQ ...
- 动态规划——min/max的单调性优化总结
一般形式: $max\{min(ax+by+c,dF(x)+eG(y)+f)\},其中F(x)和G(y)是单调函数.$ 或 $min\{max(ax+by+c,dF(x)+eG(y)+f)\},其中F ...
- Hive函数:SUM,AVG,MIN,MAX
转自:http://lxw1234.com/archives/2015/04/176.htm,Hive分析窗口函数(一) SUM,AVG,MIN,MAX 之前看到大数据田地有关于max()over(p ...
随机推荐
- Git-入门使用资料
一.Git入门教程 Git入门视频,针对于小白快速入门,时常约2~3小时 Git入门视频 相关课件资料: https://pan.baidu.com/s/1U-s4OmkToXJ5Y7BbJ7w2Ww ...
- 三维模型OBJ格式轻量化压缩主要技术方法浅析
三维模型OBJ格式轻量化压缩主要技术方法浅析 OBJ格式是一种常用的三维模型文件格式,它以文本形式保存了模型的顶点.纹理坐标和法线信息.为了实现轻量化压缩,可以采用以下主要技术方法: 1.简化网格 ...
- 2.10 PE结构:重建重定位表结构
Relocation(重定位)是一种将程序中的一些地址修正为运行时可用的实际地址的机制.在程序编译过程中,由于程序中使用了各种全局变量和函数,这些变量和函数的地址还没有确定,因此它们的地址只能暂时使用 ...
- 「codeforces - 1344D」Résumé Review
link. 有点狗,但还算个好题. 设定 \(f_i(x)=a_ix-x^3\),\(\Delta_i(x)=f_i(x)-f_i(x-1)\),可以洞察到 \(\Delta_i(x)\) 在正自然数 ...
- TiDB的简单介绍以及进行资源限制的方式与方法
TiDB的简单介绍以及进行资源限制的方式与方法 TiDB的简介 TiDB是一个分布式数据库, 简介为: TiDB 是一个开源的分布式关系型数据库,它兼具了分布式数据库的水平扩展性和传统关系型数据库的 ...
- PDFPlumber使用入门
目录 背景 教程开始 应用场景 安装 命令行使用 可选参数 Python包 简单样例 读取PDF pdfplumber.PDF类 pdfplumber.Page类 对象(Object) chars / ...
- 中国科教工作者协会与CCF PTA联合认证学习须知
中国科教工作者协会与CCF PTA联合认证学习须知 1.参与认证人员需在科技学堂(www.sciclass.cn)上进行课程学习,然后在PTA官网(pta.ccf.org.cn)报名并参加认证考试,考 ...
- Trino容错模式深度测评与思考
本文分享自华为云社区<走向批处理-交互式分析一体化: Trino容错模式深度测评与思考>,作者:HetuEngine九级代言 . 本文系华为云大数据研发团队原创,原创作者:文博,梦月 1 ...
- vue之留言板
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- ThreadPoolExecutor使用浅谈
1. 基础介绍 ThreadPoolExecutor是Python标准库concurrent.futures模块中的一个类,用于实现线程池的功能. ThreadPoolExecutor模块相比于thr ...