当前位置: 首页 > news >正文

小柒的逆序对

https://ac.nowcoder.com/acm/contest/103151/C

思路:这道题·,总是感觉自己能够做出来,但是有一些细节没有处理好,我们可以开一个数组sum[][],记录字母i和字母j能够产生多少逆序对,然后在查询的时候一种一种的加起来即可

#include<bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef pair<int, int>PII;
const int N=1e6+10;
const int MOD = 9901;
const int INF=0X3F3F3F3F;
const int dx[]={-1,1,0,0,-1,-1,+1,+1};
const int dy[]={0,0,-1,1,-1,+1,-1,+1};
const int M = 1e9 + 7;

//哎哎要敢写啊,明明自己能做出来的
int sum[500][500];//字母a与字母b产生的逆序对
int cnt[N];
int main()
{
	int n, q;
	cin >> n >> q;
	string s;
	cin >> s;
	for(int i = 0; i < n; i ++)
	{
		for(int j = 0; j <= 25; j ++)
		{
			sum[s[i] - 'a'][j] += cnt[j];//左小右大,这只是初始的大小,你并不知道他们以后的大小
			//因此要都给存起来
		}
		cnt[s[i] - 'a'] ++;
	}
	while(q --){
		string o;
		cin >> o;
		ll s = 0;
		for(int i = 0; i < o.size(); i ++)
		{
			for(int j = 0; j < i; j ++)
			{
				s += sum[o[j] - 'a'][o[i] - 'a'];
			}
		}
		cout << s << endl;
	}
    return 0;
}
http://www.dtcms.com/a/70534.html

相关文章:

  • 历年华中科技大学计算机考研复试上机真题
  • matplotlib与numpy版本不兼容问题
  • python Jsonpath表达式语法取值
  • 基于“动手学强化学习”的知识点(五):第 18 章 离线强化学习(gym版本 >= 0.26)
  • 【Rust交叉编译】在x86_64架构下交叉编译aarch64-linux-musl版的rust-opencv
  • C语言基础要素(015):分支控制:switch 语句
  • ragflow源码部署操作记录(已成功版)
  • 【设计原则:软件架构的基石与进阶秘籍】
  • Python学习第十七天
  • 【MySQL】数据库简要介绍和简单应用
  • 组件通信框架ARouter原理剖析
  • C语言 | 二叉树打印效果,控制台打印
  • MultipartEntityBuilder上传文件出现中文名乱码
  • 大模型架构全景解析:从Transformer到未来计算范式
  • 摄像头模块ISP处理流程
  • 百度贴吧IP和ID是什么意思?怎么查看
  • JConsole:JDK性能监控利器之JConsole的使用说明与案例实践
  • 星越L_备胎更换/千斤顶使用讲解
  • Webpack vs Rollup vs Parcel:构建工具深度对比
  • 面试系列|蚂蚁金服技术面【2】
  • Python教程(三):类对象、闭包、装饰器、类型注解、MRO
  • 表单 schema 配置化
  • @RequestParam、@RequestBody、@PathVariable
  • python 实现 A* 算法
  • AI日报 - 2025年3月16日
  • [测试]Selenium自动化测试常用函数
  • Java基础编程练习第31题-String类和StringBuffer类
  • 什么是 slot-scope?怎么理解。
  • 平安养老险深圳分公司积极开展2025年“3·15”金融消费者权益保护教育宣传活动
  • 19.如何使用 pandas 处理大型 Excel 文件:并行读取工作表