P9232 [蓝桥杯 2023 省 A] 更小的数(区间DP)

求大数字某连续部分反转后,比原数字小的个数

思路:自前向后遍历

ai是位于数字第i位的数字

aj是位于数字第j位的数字(i<=j)

ai>aj f[ai][aj]=1;

ai<aj f[ai][aj]=0;

ai==aj f[ai][aj]=f[ai+1][aj-1]

(由于是连续部分反转,若该部分下一层中

有反转后变小的部分,反转后整体也会变小)

复制代码
	cin >> arr;
	int len = strlen(arr);
	for (int i = len - 1; i >= 0; i--)
	{
		for (int j = i+1; j < len; j++)
		{
			if (arr[i] > arr[j])
				f[i][j] = 1;
			else if (arr[i] < arr[j])
				f[i][j] = 0;
			else
				f[i][j] = f[i + 1][j - 1];
			if (f[i][j] == 1)
				s++;
		}
	}
相关推荐
Greedy Alg18 小时前
LeetCode 208. 实现 Trie (前缀树)
算法
Kt&Rs18 小时前
11.5 LeetCode 题目汇总与解题思路
数据结构·算法·leetcode
还是码字踏实18 小时前
基础数据结构之数组的前缀和技巧:和为K的子数组(LeetCode 560 中等题)
算法·leetcode·前缀和·哈希字典
沙威玛_LHE1 天前
树和二叉树
数据结构·算法
py有趣1 天前
LeetCode算法学习之两数之和 II - 输入有序数组
学习·算法·leetcode
夏鹏今天学习了吗1 天前
【LeetCode热题100(62/100)】搜索二维矩阵
算法·leetcode·矩阵
吃着火锅x唱着歌1 天前
LeetCode 1128.等价多米诺骨牌对的数量
算法·leetcode·职场和发展
十八岁讨厌编程1 天前
【算法训练营 · 补充】LeetCode Hot100(中)
算法·leetcode
橘颂TA1 天前
【剑斩OFFER】算法的暴力美学——最小覆盖字串
算法·c/c++·就业
wearegogog1231 天前
基于混合蛙跳算法和漏桶算法的无线传感器网络拥塞控制与分簇新方法
网络·算法