Wpp


私信TA

用户名:AbertW

访问量:3964

签 名:

等  级
排  名 857
经  验 3492
参赛次数 1
文章发表 8
年  龄 0
在职情况 学生
学  校 北京工商大学
专  业

  自我简介:

TA的其他文章

解题思路:观察摆动数列

    微信图片_20210216103501.jpg

    实际上就是将一个有序数列从中位数分成两半,将中位数左侧数字从大到小一次插入右侧数字间隔。(或者相反)

    所以随便从1,...,k中选择[2,k]个数字都能组成两种摆动序列。问题的解为组合问题:从k挑[2,k]个数字,每种组合都能组成两种波动序列。

    即2^k - k - 1 (去掉选择0个或1个数字的组合数)


参考代码:

#include<stdio.h>

int main()
{
	int k;
	scanf("%d",&k);
	int res = ((1<<k)-k-1)*2;
	printf("%d\n",res);
	return 0;
}


 

0.0分

4 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区

大佬!!
2021-04-13 23:11:52
  • «
  • 1
  • »