Gorilla and Permutation

最大化排列组合函数值

题目链接

Gorilla 和 Noobish_Monk 发现了三个数字 n 、 m 和 k ( m<k )。他们决定构造一个长度为 n 的排列组合 † 。

对于这个排列,Noobish/Monk 想到了下面的函数: g(i) 是长度为 i 的前缀上的排列中所有不大于 m 的数字之和。同样,Gorilla 提出了函数 f ,其中 f(i) 是长度为 i 的前缀上不小于 k 的排列中所有数字之和。长度为 i 的前缀是由原始数组的前 i 个元素组成的子数组。

例如,如果 n=5 , m=2 , k=5 ,且排列为 [5,3,4,1,2] ,那么:

  • 𝑓(1)=5 ,因为 5≥5 ; 𝑔(1)=0 ,因为 5>2 ;
  • 𝑓(2)=5 ,因为 3<5 ; 𝑔(2)=0 ,因为 3>2 ;
  • 𝑓(3)=5 ,因为 4<5 ; 𝑔(3)=0 ,因为 4>2 ;
  • 𝑓(4)=5 ,因为 1<5 ; 𝑔(4)=1 ,因为 1≤2 ;
  • 𝑓(5)=5 ,因为 2<5 ; 𝑔(5)=1+2=3 ,因为 2≤2 。

帮助他们找

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值