
蓝桥杯
文章平均质量分 55
nxjhi
这个作者很懒,什么都没留下…
展开
-
蓝桥杯 波动数列 整数分拆 动态规划 数学 Java
把一个整数m分拆成由1~n组成的方案数可以用动态规划来做。dp[i][j]表示使用了1~i的数字,分拆j的方案数,转移方程为 dp[i][j] = dp[i-1][j] + (j>=i)*dp[i-1][j-i] 。初始化时候dp[x][0]=1。注意到每个当前状态i只与上一个状态i-1有关,所以可以用滚动数组优化存储。转移方程变为 if(j>=i) cnt[j] += cnt[j-1]。同时,由于重复使用了数组,可以减少一半的赋值量。这里要注意的是滚动数组的更新方向,由于要确保本阶段的更新不会互相干扰,原创 2017-04-06 14:10:54 · 1112 阅读 · 0 评论 -
蓝桥杯 小朋友排队 求每个位置的逆序数 T123 Java
统计每个位置的逆序数。如果是统计所有的逆序数的话,经典的nlogn复杂度的有两种方式,一个是分治,过程和归并排序一样,另一种是使用树状数组。但这里要求的是每个位置的逆序数,如果用归并,每个元素位置可能会变动,处理的比较麻烦点,所以使用树状数组。分成两部分统计。原创 2017-04-05 00:29:22 · 878 阅读 · 0 评论 -
Java实现表达式计算 蓝桥杯
Java实现表达式的计算。输入一个只包含加减乖除和括号的合法表达式,求表达式的值。 包括加减乘除和多重括号。原创 2017-03-08 21:14:16 · 4165 阅读 · 1 评论