题目-火影-鸣人-查克拉分配给分身(详解)

本文详细介绍了如何将查克拉分配给分身,包括特殊情况的处理,如查克拉不足或过剩时的策略,并通过动态规划建立二维数组`dp`来计算不同情况下的分配方案数量。最后给出了完整的解题代码。
摘要由CSDN通过智能技术生成

在这里插入图片描述
一、首先考虑一下基本情况:

查克拉 分身
0 n
1 n
n 1

该三种情况下始终只有一种情况,即K=1。

二、 当查克拉能量数量小于分身数量时

易知x个查克拉能量,最多给x个分身分配能量,多余的分身都只能为0查克拉能量。
所以多出来的分身无论有多少都不会影响分配情况K的大小。即当查克拉能量小于分身数量时,K的大小始终和查克拉等于分身数量时的K的大小。

三、建立一个二维数组dp[11][11]
dp[ x ][ y ]代表在 x 个查克拉能量和 y 个分身时的分配情况K的数目。
此时结合上面讲的第二点,可得该代码

if(x<y)
{
   
	dp[x][y]=dp[x][x];
}

四、当查克拉能量大于分身数量时(x个查克拉能量,y个分身)
该情况我们可以分为两种情况来看
1、有一个分身始终为0不分配能量
2、全部分身必须有能量
这两种情况加起来就是全部情况。

先看第一种情况,因为有一个分身不分配,所以该情况就可以转换为x个查克拉能量,y-1个分身时分配方式数量。再结合数组,此时的K就是dp[ x ][ y-1 ];

再看第二种情况,因为该情况下的分身必须都有能量,所以有y个查克拉能量固定分配,一个分身一个,我们不能动。此时我们的能量就剩下了x-y个查克拉能量,所以该情况就可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值