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++;
		}
	}
相关推荐
仟濹1 分钟前
【算法打卡day34(2026-03-30 周一)】DFS专项训练(今日算法:DFS & 记忆化搜索 & 回溯)
算法·深度优先
罗湖老棍子6 分钟前
【 例 1】区间和(信息学奥赛一本通- P1547)(基础线段树和单点修改区间查询树状数组模版)
数据结构·算法·线段树·树状数组·单点修改 区间查询
旺仔.29126 分钟前
常用算法 详解
数据结构·算法
今儿敲了吗30 分钟前
算法复盘——差分
数据结构·c++·笔记·学习·算法
qq_3985865440 分钟前
平衡三进制超前进位加法器
算法
西西弟44 分钟前
最短路径之Dijkstra算法(数据结构)
数据结构·算法
沉鱼.441 小时前
树形DP题目
算法·深度优先
VelinX1 小时前
【个人学习||算法】多维动态规划
学习·算法·动态规划
AlenTech1 小时前
139. 单词拆分 - 力扣(LeetCode)
算法·leetcode·职场和发展
墨韵流芳1 小时前
CCF-CSP第41次认证第一题——平衡数
c++·算法·ccf·平衡数