本文主要是介绍【题解】种树的艺术,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目
题目描述
有N棵高度不一样的树要种成一行,为了让种树更加有艺术性,制定一个种树规则,希望从左边看过去只能看到L棵树,从右边看过去只能看到R棵树,请问有多少种不同的种树方案。
输入格式
输入包含多组数据。
首先第一行包含一个整数t,表示数据的组数。
之后t行,每行包含三个数N,L,R,以空格隔开,表示树的棵数N以及从左边看过去的棵数L和从右边看过去的棵数R。
输出格式
共t行,每行一个数,表示每组数据所对应的种树的方案数。答案可能很大,请对 998244353取模。
样例
样例输入
2
4 1 2
4 2 1
样例输出
2
2
数据范围与提示
样例分析:
如:对于“4 1 2”这种情况而言,存在两种种树的方案,分别为{4,1,2,3},{4,2,1,3}。
数据范围:
对于30%的数据:1≤T≤5;1≤n≤10。
对于100%的数据:1≤T≤1000;1≤n≤200。
思路
一.状态
dp[i][j][k]表示i棵树从左边看有j棵,从右边看有k棵 的方案数
转移
我们知道状态的转移主要是靠前面已知的状态来转移后面的状态,现在考虑一个状态 d p [ i ] [ j ] [ k ] dp[i][j][k] dp[i][j][k],对于这道题而言,想靠一个更小的 i i
这篇关于【题解】种树的艺术的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!