一个 1 到 n 的排列被称为半递增序列,是指排列中的奇数位置上的值单调递增,偶数位置上的值也单调递增。
1条回答 默认 最新
- 钰娘娘 2021-11-27 17:26关注
不要被题目骗了,其实这个问题就是n选n/2的组合问题,组合可以用杨辉三角推导,然后就是求余a=b+c=>a%k=(b%k+c%k)%k
public class Main { public static void main(String[] args) { Main main = new Main(); System.out.println(main.getCombine(10000)); } private int getCombine(int n){ if(n==1) return 1; int k = n/2; int[] dp = new int[n+1]; for(int i = 1; i <= n; i++){ dp[0]=1; dp[i]=1; for(int j = i-1; j>=1; j--){ dp[j]=dp[j-1]+dp[j]; dp[j]%= (1e9+7); } } return dp[k]; } }
解决 1无用
悬赏问题
- ¥15 matlab数据降噪处理,提高数据的可信度,确保峰值信号的不损失?
- ¥15 怎么看我在bios每次修改的日志
- ¥15 python+mysql图书管理系统
- ¥15 Questasim Error: (vcom-13)
- ¥15 船舶旋回实验matlab
- ¥30 SQL 数组,游标,递归覆盖原值
- ¥15 为什么我的数据接收的那么慢呀有没有完整的 hal 库并 代码呀有的话能不能发我一份并且我用 printf 函数显示处理之后的数据,用 debug 就不能运行了呢
- ¥20 gitlab 中文路径,无法下载
- ¥15 用动态规划算法均分纸牌
- ¥30 udp socket,bind 0.0.0.0 ,如何自动选取用户访问的服务器IP来回复数据