当前位置: 首页 > 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;
}

相关文章:

  • 历年华中科技大学计算机考研复试上机真题
  • 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】
  • 2025年度中国青年五四奖章暨新时代青年先锋奖评选揭晓
  • 人民日报:在大有可为的时代大有作为
  • 国家发改委下达今年第二批810亿超长期特别国债资金,支持消费品以旧换新
  • 解放日报头版:人民城市共建共享展新卷
  • 上海出台灵活就业人员公积金新政:不限户籍、提取自由,6月起施行
  • 超级干细胞有助改善生育治疗