洛谷 AT_arc168_a [ARC168A] <Inversion> 题解

逆序对

在一个没有重复数值的序列 a a a 之中,如果存在一组下标 i i i j j j 使得 i < j i<j i<j,那么当 a i > a j a_i>a_j ai>aj 时,就称 a i a_i ai a j a_j aj 是序列 a a a 中的一组逆序对。

思路

显然,对于连续 x x x>,会产生 ∑ i = 1 x i \displaystyle\sum_{i=1}^{x}i i=1xi 个逆序对,利用高斯求和转换成 x × ( x + 1 ) 2 \displaystyle\frac{x\times(x+1)}{2} 2x×(x+1)

所以只要从左至右一步步判断 S S S 的字符,如果其是:

  • >:累加 > 的个数(为方便表示,设其为 x x x)。
  • <:将答案累加 x × ( x + 1 ) 2 \displaystyle\frac{x\times(x+1)}{2} 2x×(x+1) 并将 x x x 0 0 0

最后输出答案即可。

Code

#include<iostream>
#define int long long//不开long long见祖宗
using namespace std;
signed main() {
	ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
	int n,sum=0,ans=0;
	string str;
	cin>>n>>str,--n;
	for(int i=0;i<n;++i) {
		if(str[i]=='>') ++sum;//累加
		else ans+=(sum+1)*sum/2,sum=0;//累加答案并清0
	}
	cout<<ans+(sum+1)*sum/2;//还要把最后的累加起来
	return 0;
}

相关推荐

  1. AT_arc168_a [ARC168A] <Inversion题解

    2024-06-16 19:14:01       35 阅读
  2. 题解】 P1696 [USACO18JAN] Blocked Billboard II B

    2024-06-16 19:14:01       30 阅读
  3. P5483 小A的烦恼 题解

    2024-06-16 19:14:01       75 阅读
  4. P1234题解

    2024-06-16 19:14:01       36 阅读
  5. P10397题解

    2024-06-16 19:14:01       30 阅读
  6. P10119 题解

    2024-06-16 19:14:01       23 阅读
  7. U423720题解

    2024-06-16 19:14:01       20 阅读
  8. P8740 [蓝桥杯 2021 省 A] 填空问题 题解

    2024-06-16 19:14:01       27 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-16 19:14:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-16 19:14:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-06-16 19:14:01       87 阅读
  4. Python语言-面向对象

    2024-06-16 19:14:01       96 阅读

热门阅读

  1. 用户组的概念(linux篇)

    2024-06-16 19:14:01       27 阅读
  2. CentOS下 conda环境设置

    2024-06-16 19:14:01       28 阅读
  3. HTTP!!!

    HTTP!!!

    2024-06-16 19:14:01      34 阅读
  4. Android基础-ANR详解

    2024-06-16 19:14:01       32 阅读
  5. oracle的xmlagg的用法

    2024-06-16 19:14:01       30 阅读
  6. 异常处理与IO

    2024-06-16 19:14:01       26 阅读
  7. C语言:进程

    2024-06-16 19:14:01       23 阅读
  8. 数据库 | 数据库设计的步骤

    2024-06-16 19:14:01       31 阅读
  9. 创建你的第一个Windows程序

    2024-06-16 19:14:01       24 阅读
  10. 【Python高级编程】用 Matplotlib 绘制迷人的图表

    2024-06-16 19:14:01       30 阅读