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

3193. 统计逆序对的数目

3193. 统计逆序对的数目


题目链接:3193. 统计逆序对的数目

代码如下:

class Solution 
{
public:
	int numberOfPermutations(int n, vector<vector<int>>& requirements) 
	{
		vector<int> req(n, -1);
		req[0] = 0;
		for (auto& p : requirements)
		{
			req[p[0]] = p[1];
		}
		if (req[0])
		{
			return 0;
		}

		int m = ranges::max(req);
		vector<vector<int>> memo(n, vector<int>(m + 1, -1));//-1表示没有计算过
		auto dfs = [&](auto&& dfs, int i, int j)->int
			{
				if (i == 0)
				{
					return 1;
				}
				int& res = memo[i][j];//注意这里是引用
				if (res != -1)//之前计算过
				{
					return res;
				}
				res = 0;
				if (int r = req[i - 1]; r >= 0)
				{
					if (j >= r && j - i <= r)
					{
						res = dfs(dfs, i - 1, r);
					}
				}
				else
				{
					for (int k = 0; k <= min(i, j); k++)
					{
						res=(res+dfs(dfs,i-1,j-k))%MOD;
					}
				}
				return res;
			};
		return dfs(dfs, n - 1, req[n - 1]);
	}

private:
	const int MOD = 1'000'000'007;
};

http://www.kler.cn/a/385148.html

相关文章:

  • 一文了解Android SELinux
  • 一个小程序如何对接多个收款账户?
  • C++ 并发专题 - 条件变量的使用
  • oneplus6-build.md
  • 【linux学习2】linux基本命令行操作总结
  • 思源笔记轻松连接本地Ollama大语言模型,开启AI写作新体验!
  • [JAVAEE] 网络基础
  • 气象监测软件的程序设计
  • 富格林:安全步骤交易稳健出金
  • sql-Incorrect string value
  • wordpress ripro-v5-8.3开心版主题源码
  • 操作系统学习笔记-5.1-IO设备
  • 使用BaGet快速搭建nuget服务
  • SQL,力扣题目1225,报告系统状态的连续日期【窗口函数】
  • 数据库Redis篇
  • 数学建模学习(135):使用Python基于WSM、WPM、WASPAS的多准则决策分析
  • 第10章 多表查询
  • DiskGenius工具扩容Mac OS X Apple APFS分区
  • 高效管理iPhone存储:苹果手机怎么删除相似照片
  • 【论文复现】MSA+抑郁症模型总结(二)
  • 使用最新版的wvp和ZLMediaKit搭建Gb28181测试服务器
  • Spring Boot中集成MyBatis操作数据库详细教程
  • ARXML汽车可扩展标记性语言规范讲解
  • JavaScript 实现文本转语音功能
  • 倒反天罡?程序员没有被AI替代,却间接用AI替代了产品经理
  • C++_判断文件是否存在_access函数